mysqldump:MySql 备份用户无法使用密码连接
mysqldump: MySql backup user is not able to connect using password
我使用以下命令创建了一个 mysql 用户:
CREATE USER 'backupuser'@'localhost' IDENTIFIED BY 'password';
我已使用以下命令授予他权限:
GRANT EVENT, LOCK TABLES, SELECT, SHOW DATABASES, RELOAD, REPLICATION CLIENT ON *.* TO 'backupuser'@'localhost' IDENTIFIED BY 'password';
但是当我尝试使用以下命令进行数据库转储时,它不起作用:
sudo mysqldump -ubackupuser -ppassword --all-databases > all_db_backup.sql
它说:mysqldump: Got error: 1045: Access denied for user 'backupuser'@'localhost' (using password: YES) when trying to connect
但是如果我不使用密码尝试连接,它会要求输入密码然后就可以了。
我正在创建一个备份脚本,所以我必须在命令中传递密码。您能否帮助我的备份用户使用 mysql 转储进行连接?
您的密码是否包含 shell 的特殊字符?例如 ;
&
!
或 space、引号等?您可能需要引用密码。
但无论如何,我建议您不要将密码放在 command-line 上。因此,任何可以 运行 ps
在您的服务器上的人都可以看到您的纯文本密码。
相反,将用户名和密码放在 options file 中。即保存一个小文件,内容如下:
[mysqldump]
user = backupuser
password = ...
当然是在我放“...”的地方写下你自己的密码。
更改文件的权限,这样除了运行备份您的用户之外,没有人可以读取它。
然后在 运行 mysqldump:
时引用选项文件
mysqldump --defaults-file=myopts.cnf --all-databases ...
这样密码就不会出现在服务器的进程列表中。也不必担心密码中的特殊字符。
P.S.: 我不确定你为什么使用 sudo
来 运行 你的备份。那应该没有必要。
我使用以下命令创建了一个 mysql 用户:
CREATE USER 'backupuser'@'localhost' IDENTIFIED BY 'password';
我已使用以下命令授予他权限:
GRANT EVENT, LOCK TABLES, SELECT, SHOW DATABASES, RELOAD, REPLICATION CLIENT ON *.* TO 'backupuser'@'localhost' IDENTIFIED BY 'password';
但是当我尝试使用以下命令进行数据库转储时,它不起作用:
sudo mysqldump -ubackupuser -ppassword --all-databases > all_db_backup.sql
它说:mysqldump: Got error: 1045: Access denied for user 'backupuser'@'localhost' (using password: YES) when trying to connect
但是如果我不使用密码尝试连接,它会要求输入密码然后就可以了。
我正在创建一个备份脚本,所以我必须在命令中传递密码。您能否帮助我的备份用户使用 mysql 转储进行连接?
您的密码是否包含 shell 的特殊字符?例如 ;
&
!
或 space、引号等?您可能需要引用密码。
但无论如何,我建议您不要将密码放在 command-line 上。因此,任何可以 运行 ps
在您的服务器上的人都可以看到您的纯文本密码。
相反,将用户名和密码放在 options file 中。即保存一个小文件,内容如下:
[mysqldump]
user = backupuser
password = ...
当然是在我放“...”的地方写下你自己的密码。
更改文件的权限,这样除了运行备份您的用户之外,没有人可以读取它。
然后在 运行 mysqldump:
时引用选项文件mysqldump --defaults-file=myopts.cnf --all-databases ...
这样密码就不会出现在服务器的进程列表中。也不必担心密码中的特殊字符。
P.S.: 我不确定你为什么使用 sudo
来 运行 你的备份。那应该没有必要。