Mysqldump narzeka na wybrane bazy danych niezależnie od wiersza poleceń

20

Mysqldump narzeka na opcje wiersza poleceń, których nigdy nie określiłem. Nie mam aliasów powłoki ani niestandardowego zestawu plików .my.cnf. Co ja robię źle?

Korzystanie z --databasedługiej opcji:

$ 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.

Korzystanie z --databasesdługiej opcji:

$ 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'

Korzystanie z --all-databasesdługiej opcji:

$ 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'

Używając tylko nazwy db:

$ 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'

I wreszcie, nie precyzując niczego :

$ 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
źródło
1
Pewnie to już sprawdzone, ale nic nie można znaleźć w /etc/my.cnflub /etc/mysql/conf.dlub podobnych miejscach?
Martijn Heemels,
Opublikuj swoje /etc/my.cnf(i jego załączniki) i $HOME/.my.cnfpliki.
Michael Hampton

Odpowiedzi:

27

W .my.cnfpliku opcji prawdopodobnie podano parametr bazy danych dla wszystkich klientów, ale mysqldump nie lubi tego parametru. Dlatego nie wymieniaj tego parametru dla wszystkich klientów w pliku opcji.

Na przykład, oto jak to rozwiązałem, aby klient mysql nadal działał bez określania bazy danych (domyślnie nazwa „walkin”), a mysqldump nie narzeka:

Przed:

$ cat ~ / .my.cnf
[klient]
użytkownik = root
host = 127.0.0.1
hasło = „root”
baza danych = walkin

Po:

$ cat ~ / .my.cnf
[klient]
użytkownik = root
host = 127.0.0.1
hasło = „root”

[mysql]
baza danych = walkin
Kai Carver
źródło
Więc sprzeczne z intuicją. Dzięki za wyjaśnienie tego.
jchavannes
FWIW, oto (bardzo stary) raport o błędzie
Dario Seidl
I nowszy dla MariaDB: mariadb.atlassian.net/browse/MDEV-7208
Dario Seidl