Mysqldump beschwert sich über ausgewählte Datenbanken, unabhängig von der Befehlszeile

20

Mysqldump beschwert sich über Befehlszeilenoptionen, die ich nie angegeben habe. Ich habe weder Shell-Aliase noch eine benutzerdefinierte .my.cnf-Datei festgelegt. Was mache ich falsch?

Mit der --databaselangen Option:

$ mysqldump --user cloud -p --database cloud > backup.mysqldb
Warning: Using unique option prefix database instead of databases is deprecated and  will be removed in a future release. Please use the full name instead.
Warning: mysqldump: ignoring option '--databases' due to invalid value 'cloud'
Warning: Using unique option prefix database instead of databases is deprecated and will be removed in a future release. Please use the full name instead.

Mit der --databaseslangen Option:

$ mysqldump --user cloud -p --databases cloud > backup.mysqldb
Warning: Using unique option prefix database instead of databases is deprecated and will be removed in a future release. Please use the full name instead.
Warning: mysqldump: ignoring option '--databases' due to invalid value 'cloud'

Mit der --all-databaseslangen Option:

$ mysqldump --user cloud -p --all-databases > backup.mysqldb
Warning: Using unique option prefix database instead of databases is deprecated and will be removed in a future release. Please use the full name instead.
Warning: mysqldump: ignoring option '--databases' due to invalid value 'cloud'

Verwenden Sie nur den DB-Namen:

$ mysqldump --user cloud -p cloud > backup.mysqldb
Warning: Using unique option prefix database instead of databases is deprecated and will be removed in a future release. Please use the full name instead.
Warning: mysqldump: ignoring option '--databases' due to invalid value 'cloud'

Und schließlich nichts spezifizieren :

$ mysqldump --user cloud -p > backup.mysqldb
Warning: Using unique option prefix database instead of databases is deprecated and will be removed in a future release. Please use the full name instead.
Warning: mysqldump: ignoring option '--databases' due to invalid value 'cloud'
andyn
quelle
1
Sie haben wahrscheinlich schon überprüft, aber nichts gefunden werden /etc/my.cnfoder /etc/mysql/conf.doder ähnlichen Orten?
Martijn Heemels
Veröffentlichen Sie Ihre /etc/my.cnf(und seine Includes) und $HOME/.my.cnfDateien.
Michael Hampton

Antworten:

27

In Ihrer .my.cnfOptionsdatei ist wahrscheinlich der Datenbankparameter für alle Clients angegeben, aber dieser Parameter gefällt mysqldump nicht. Listen Sie diesen Parameter also nicht für alle Clients in Ihrer Optionsdatei auf.

Zum Beispiel, hier ist, wie ich es gelöst habe, damit der MySQL-Client immer noch ohne Angabe der Datenbank funktioniert (standardmäßig mit dem Namen 'walkin') und MySQLDump sich nicht beschwert:

Vor:

$ cat ~ / .my.cnf
[Klient]
Benutzer = root
Host = 127.0.0.1
password = "root"
database = walkin

Nach:

$ cat ~ / .my.cnf
[Klient]
Benutzer = root
Host = 127.0.0.1
password = "root"

[MySQL]
database = walkin
Kai Carver
quelle
Also kontraintuitiv. Vielen Dank für die Aufklärung.
Jchavannes
FWIW, hier ist ein (sehr alter) Fehlerbericht dafür: bugs.mysql.com/bug.php?id=18209
Dario Seidl
Und eine neuere für MariaDB: mariadb.atlassian.net/browse/MDEV-7208
Dario Seidl