Ich verwende das automysqlbackup
Skript, um meine MySQL-Datenbanken zu sichern, aber ich möchte einen schreibgeschützten Benutzer, der dies ausführt, damit ich mein Root-Datenbankkennwort nicht in einer Klartextdatei speichere.
Ich habe einen Benutzer wie folgt erstellt:
grant select, lock tables on *.* to 'username'@'localhost' identified by 'password';
Beim Ausführen mysqldump
(entweder durch automysqlbackup
oder direkt) erhalte ich die folgende Warnung:
mysqldump: Got error: 1044: Access denied for user 'username'@'localhost' to database 'information_schema' when using LOCK TABLES
Mache ich es falsch? Benötige ich zusätzliche Stipendien für meinen schreibgeschützten Benutzer? Oder kann man root
den information_schema
Tisch nur abschließen ? Was ist los?
Bearbeiten:
GAH und jetzt funktioniert es. Ich habe FLUSH PRIVILEGES möglicherweise noch nicht ausgeführt.
Wie oft geschieht dies übrigens automatisch?
Bearbeiten:
Nein, das geht nicht. Das mysqldump -u username -p --all-databases > dump.sql
manuelle Ausführen generiert keinen Fehler, gibt jedoch kein information_schema aus. automysqlbackup
löst einen Fehler aus.
mysqldump
: mysqldump speichert die INFORMATION_SCHEMA-Datenbank nicht. Wenn Sie diese Datenbank explizit in der Befehlszeile benennen, ignoriert mysqldump sie unbemerkt. Es scheint, als sei die Manpage veraltet (und es wird eine Warnung ausgegeben), oderautomysqlbackup
es werden einige zusätzliche Überprüfungen des Speicherauszugs für durchgeführtinformation_schema
. Nicht sicher, welches es ist, aber es hängt nicht mit Benutzerbewilligungen zusammen.