Howto:mysqldump cron对godaddy

我有一个MySql数据库,我想每天备份到一个文件。 (我将稍后下载用于服务器外备份)。

我已经在我的crontab(每日运行)中设置了以下命令:

mysqldump -–opt -Q -h [myhost] -u myusername -–password=***** ebooklibrary > /fullpath.../_db_backups/openelibrary.sql 

数据库名称是ebooklibrary

我不断得到这个错误:

 mysqldump: Got error: 1045: Access denied for user 'myusername'@'97.74.144.139' (using password: NO) when trying to connect 

我该如何解决这个问题,或者正确地做到这一点,以便mysqldump每天运行?

谢谢。


使用shell,以下命令工作:

  mysql -h myhost -u myusername -p"*****" ebooklibrary 

我相信这个问题是与你如何指定密码。 尝试

 mysqldump –opt -Q -h [myhost] -u myusername –p"*****" ebooklibrary > /fullpath.../_db_backups/openelibrary.sql 

在命令行上指定密码时,需要使用

 --password="xxx" 

而不是

 -password="xxx" 

注意第一个命令的双破折号。

编辑:你知道如果数据库服务器是相同的服务器作为networking服务器? 如果是这样,你有没有尝试省略主机? 有了这个想法,你还试过–host = 127.0.0.1(刚刚在我的机器上试了一下 – 看起来很正确的主机名称)

这个错误有两个可能的原因。

1)你的密码有特殊的字符,如!%#等,如果是这种情况,你可以通过在它前面加一个反斜杠“\”来避开这个字符。

2)该用户真的没有来自错误中提到的IP地址的访问许可。 解决方法是从指定的IP向该用户提供权限,或者不尝试使用该主机进行mysql访问。

如果您有权访问服务器CLI,则也可以使用以下命令(如果您不指定主机,则mysql将尝试连接到本地主机):

 mysqldump -uUSER -pPASS ebooklibrary > /fullpath.../_db_backups/openelibrary.sql 

或者如果远程执行命令,则可以使用以下语法。

 mysqldump -h IP -uUSER -pPASS ebooklibrary > /fullpath.../_db_backups/openelibrary.sql 

您应确定您具有执行mysqldump页面上指定的转储的必要权限。