it-swarm.com.de

Verwenden von mysqldump und Datenbankbenutzern

Ich versuche, alle Optionen zusammenzustellen, die ich für mysqldump benötige, um alles, was von meiner Anwendungsdatenbank verwendet wird, in einem einzigen Skript zu erstellen. Dies umfasst die Datenbank selbst und alle Datenbankbenutzer/Kennwörter/Berechtigungen.

Ich habe alles mit Ausnahme des Anwenderstücks herausgefunden ... hier ist was ich gerade verwende:

mysqldump -h Host -u root -p \
    --add-drop-database --routines -B database_name > backup.sql

Was fehlt mir?

32
Bobby B

Die Datenbankbenutzer/kennwörter/-berechtigungen werden in der mysql-Datenbank gespeichert und werden nicht mit dem Befehl dump gespeichert. Sie müssen diese Datenbank auch zur Liste der zu sichernden DBs hinzufügen:

mysqldump ... --routines --databases database_name mysql > backup.sql

oder einfach alles ablassen:

mysqldump ... --routines --all-databases > backup.sql
43
Marc B

Vergessen Sie beim Ablegen der mysql-Datenbank nicht:

 --flush-privileges  Emit a FLUSH PRIVILEGES statement after dumping the mysql
                     database.  This option should be used any time the dump
                     contains the mysql database and any other database that
                     depends on the data in the mysql database for proper
                     restore.
23
Markus T

Ich hatte also ein grundlegendes Missverständnis. Benutzer sind nicht spezifisch für eine Datenbank, sondern werden auf Serverebene erstellt.

Sie können alle vorhandenen Benutzer mit der folgenden Abfrage anzeigen:

SELECT * FROM mysql.user;

Wenn man das weiß, ist es offensichtlich, dass mysqldump nichts mit Benutzern anfangen sollte. Wenn Sie jedoch eine Antwort auf das Exportieren/Importieren von Benutzern und Dauerwellen benötigen, schlage ich vor, den folgenden Artikel zu lesen - er hat mir geholfen.

http://pento.net/2009/03/12/backing-up-permissions-für-individuelle-datenbanken/

Ich entschuldige mich für das Geräusch auf der Tafel, aber ich dachte mir, ich würde den Posten verlassen, falls jemand anderes das gleiche Missverständnis hat.

10
Bobby B

Vollständiger Prozess für mich bei der Migration von einer Mac OS X-Entwicklerumgebung zu einer neuen.

0) Entfernen Sie die neuere Version von MySQL auf dem neuen MacBook

Ich hatte MySQL 8 aus Versehen installiert und musste es deshalb entfernen, da es neuer als mein altes MacBook war.

# Remove binaries
$ brew uninstall mysql

# Remove data/config that is leftover
$ rm -r /usr/local/var/mysql/

1) Installieren Sie dieselbe Version von MySQL auf dem neuen MacBook

# Install version that matched old MacBook
$ brew install [email protected]

# Because it is an old version, you have to do a special configuration step
$ echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile

# Start server
$ mysql.server start

2) Daten auf altem MacBook sichern

$ mysqldump -uroot --flush-privileges --routines --all-databases > complete_dump.sql

3) Stellen Sie die Daten auf dem neuen MacBook wieder her

$ mysql -p -uroot < complete_dump.sql
1
PaulMest