Mysqldump mengeluh tentang database yang dipilih terlepas dari baris perintah

20

Mysqldump mengeluh tentang opsi baris perintah yang belum pernah saya tentukan. Saya tidak memiliki alias alias shell atau kumpulan file .my.cnf khusus. Apa yang saya lakukan salah?

Menggunakan --databaseopsi panjang:

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

Menggunakan --databasesopsi panjang:

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

Menggunakan --all-databasesopsi panjang:

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

Hanya menggunakan nama 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'

Dan akhirnya, tidak menentukan apa pun :

$ 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
sumber
1
Anda mungkin sudah memeriksa ini, tetapi tidak ada yang ditemukan di /etc/my.cnfatau /etc/mysql/conf.datau lokasi serupa?
Martijn Heemels
Posting /etc/my.cnf(dan termasuk) dan $HOME/.my.cnffile Anda.
Michael Hampton

Jawaban:

27

Dalam .my.cnffile opsi Anda, Anda mungkin memiliki parameter database yang ditentukan untuk semua klien, tetapi mysqldump tidak menyukai parameter itu. Jadi jangan daftar parameter itu untuk semua klien di file opsi Anda.

Sebagai contoh, inilah cara saya menyelesaikannya sehingga klien mysql masih berfungsi tanpa menentukan database (default untuk nama 'walkin') dan mysqldump tidak mengeluh:

Sebelum:

$ cat ~ / .my.cnf
[klien]
pengguna = root
host = 127.0.0.1
password = "root"
database = walkin

Setelah:

$ cat ~ / .my.cnf
[klien]
pengguna = root
host = 127.0.0.1
password = "root"

[mysql]
database = walkin
Kai Carver
sumber
Jadi kontra intuitif. Terima kasih sudah membereskannya.
jchavannes
FWIW, berikut ini adalah laporan bug (sangat lama) untuk itu: bugs.mysql.com/bug.php?id=18209
Dario Seidl
Dan yang lebih baru untuk MariaDB: mariadb.atlassian.net/browse/MDEV-7208
Dario Seidl