Eu acredito que o assunto é como você especifica a senha. Experimente
mysqldump –opt -Q -h [myhost] -u myusername –p"*****" ebooklibrary > /fullpath.../_db_backups/openelibrary.sql
Eu tenho um banco de dados MySql que eu quero fazer backup em um arquivo diariamente. (Que depois baixarei para backup fora do servidor).
Eu configurei o seguinte comando no meu crontab (executado diariamente):
mysqldump -–opt -Q -h [myhost] -u myusername -–password=***** ebooklibrary > /fullpath.../_db_backups/openelibrary.sql
O nome do banco de dados é ebooklibrary .
Estou constantemente recebendo este erro:
mysqldump: Got error: 1045: Access denied for user 'myusername'@'97.74.144.139' (using password: NO) when trying to connect
Como posso consertar isso, ou fazê-lo corretamente, para que o mysqldump seja executado diariamente?
Obrigado.
Usando o shell, o seguinte comando funcionou:
mysql -h myhost -u myusername -p"*****" ebooklibrary
Ao especificar uma senha na linha de comando, você precisa usar
--password="xxx"
em vez de
-password="xxx"
Observe o traço duplo no primeiro comando.
EDIT: Você sabe se o servidor DB é o mesmo servidor que o servidor web? Em caso afirmativo, você tentou omitir o host? Com esse pensamento, você também tentou --host = 127.0.0.1 (Apenas tentei isso na minha máquina - parece muito anal sobre o nome do host correto)
Existem 2 motivos prováveis para este erro.
1) Sua senha tem caracteres especiais como !%#
etc., se este for o caso, você pode escapar do personagem colocando uma barra invertida '\' antes dele.
2) Este usuário realmente não tem permissão de acesso do endereço IP mencionado no erro. A solução é fornecer direitos a esse usuário a partir do IP especificado ou não tentar usar esse host para acessar o mysql.
Você também pode usar o seguinte comando se tiver acesso ao CLI do servidor (se você não especificar nenhum host, o mysql tentará se conectar ao host local):
mysqldump -uUSER -pPASS ebooklibrary > /fullpath.../_db_backups/openelibrary.sql
ou você pode usar a seguinte sintaxe se estiver executando o comando remotamente.
mysqldump -h IP -uUSER -pPASS ebooklibrary > /fullpath.../_db_backups/openelibrary.sql
Você deve verificar se possui os direitos necessários para realizar o despejo, conforme especificado no mysqldump página.