O Mysqldump reclama dos bancos de dados escolhidos, independentemente da linha de comando

20

O Mysqldump reclama das opções de linha de comando que eu nunca especifiquei. Não tenho aliases de shell nem um conjunto de arquivos .my.cnf personalizado. O que estou fazendo errado?

Usando a --databaseopção longa:

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

Usando a --databasesopção longa:

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

Usando a --all-databasesopção longa:

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

Usando apenas o nome 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'

E, finalmente, não especificando nada :

$ 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
fonte
1
Você provavelmente já verificou isso, mas nada pode ser encontrado em /etc/my.cnfou em /etc/mysql/conf.dlocais semelhantes?
Martijn Heemels 23/02
Publique seus /etc/my.cnf(e inclui) e $HOME/.my.cnfarquivos.
Michael Hampton

Respostas:

27

No seu .my.cnfarquivo de opções, você provavelmente tem o parâmetro database especificado para todos os clientes, mas o mysqldump não gosta desse parâmetro. Portanto, não liste esse parâmetro para todos os clientes no seu arquivo de opções.

Por exemplo, aqui está como eu o resolvi para que o cliente mysql ainda funcione sem especificar o banco de dados (o padrão é o nome 'walkin') e o mysqldump não reclame:

Antes:

$ cat ~ / .my.cnf
[cliente]
usuário = raiz
host = 127.0.0.1
password = "root"
database = andando

Depois de:

$ cat ~ / .my.cnf
[cliente]
usuário = raiz
host = 127.0.0.1
password = "root"

[mysql]
database = andando
Kai Carver
fonte
Tão contra-intuitivo. Obrigado por esclarecer isso.
precisa saber é o seguinte
FWIW, aqui está uma (muito antiga) relatório de bug para isso: bugs.mysql.com/bug.php?id=18209
Dario Seidl
E um mais recente para o MariaDB: mariadb.atlassian.net/browse/MDEV-7208
Dario Seidl