![MySQL 转储,使用正确的用户名和密码访问被拒绝 1045](https://linux22.com/image/133377/MySQL%20%E8%BD%AC%E5%82%A8%EF%BC%8C%E4%BD%BF%E7%94%A8%E6%AD%A3%E7%A1%AE%E7%9A%84%E7%94%A8%E6%88%B7%E5%90%8D%E5%92%8C%E5%AF%86%E7%A0%81%E8%AE%BF%E9%97%AE%E8%A2%AB%E6%8B%92%E7%BB%9D%201045.png)
我为我的 MySQL 数据库创建了一个名为“backup”的用户,并为其指定了一个特定的密码。
我现在尝试执行这个命令:
sudo mysqldump --user=backup -password=SuperS3f@kePass --all-databases > all_databases.sql
导致这些错误:
mysqldump: Got error: 1045: Access denied for user 'backup'@'localhost' (using password: YES) when trying to connect
我尝试过使用 root mysql 用户,并且没有使用 sudo,但出现了相同的错误
MySQL 版本:Ubuntu 17.10 上的 mysql Ver 14.14 Distrib 5.7.22
答案1
大概是这样解释的:
这与以下事实有关:对于 mysql,连接到localhost
实际上意味着连接到 UNIX 套接字(可能/var/run/mysqld/mysqld.sock
),而连接到127.0.0.1
意味着连接(使用 IPv4)到localhost
。所以他们选择区分他们的访问权限。
要检查情况是否如此,请重试:
sudo mysqldump -h 127.0.0.1 --user=backup -password=SuperS3f@kePass --all-databases > all_databases.sql
然后更正访问权限(例如'backup'@'localhost'
)。