gpt4 book ai didi

mysql转储: MySql backup user is not able to connect using password

转载 作者:行者123 更新时间:2023-11-29 07:19:16 24 4
gpt4 key购买 nike

我使用以下命令创建了一个 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:出现错误:1045:尝试连接时用户 'backupuser'@'localhost'(使用密码:YES)访问被拒绝

但是,如果我尝试不使用密码进行连接,那么它会要求输入密码,然后就可以了。

我正在创建一个备份脚本,所以我必须在命令中传递密码。你能帮忙如何让我的备份用户使用 mysql 转储进行连接吗?

最佳答案

您的密码是否包含 shell 的特殊字符?像 ; & ! 或者空格、引号等等?您可能需要引用密码。

但无论如何,我建议您不要将密码放在命令行中。因此,任何可以在您的服务器上运行 ps 的人都可以看到您的明文密码。

相反,将用户和密码放在 options file 中.即保存一个小文件,内容如下:

[mysqldump]
user = backupuser
password = ...

当然在我放“...”的地方写下你自己的密码。

更改文件的权限,以便除了运行备份的用户之外没有人可以读取它。

然后在运行 mysqldump 时引用选项文件:

mysqldump --defaults-file=myopts.cnf --all-databases ...

这样密码在服务器的进程列表中是不可见的。也不必担心密码中的特殊字符。

P.S.:我不确定您为什么使用 sudo 来运行备份。那应该没有必要。

关于mysql转储: MySql backup user is not able to connect using password,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57170517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com