我在本地计算机上的虚拟 Debian 机器上运行着一个 MySQL 服务器 (5.6)。通过以下命令从 localhost 命令行连接到 MySQL 可按预期工作:
mysql -uroot -ppassword
最初尝试使用 MySQL Workbench 远程连接到虚拟机时,我收到了拒绝 root 帐户权限的消息,我通过注释掉bind-address=localhost
虚拟 MySQLmy.cnf
文件中的指令解决了这个问题。完成此操作并重新启动后,我便能够按预期进行远程连接。
但是现在,我遇到了一个不同的问题——当尝试从虚拟框(即本地主机)上的命令行连接时,出现以下错误:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
通过主机名、本地环回 IP(IP4 和 IP6)以及远程连接均可正常工作:
mysql -uroot -ppassword -hhostname
mysql -uroot -ppassword -h127.0.0.1
查看数据库中的用户表,root有四个用户帐户:
root@localhost
[email protected]
root@::1
root@%
并且它们具有正确的设置,因此一切看起来都很好。
我已经运行FLUSH PRIVILEGES
并重新启动了 MySQL,但没有解决方案。
编辑
输出自mysql -uroot -ppassword -hlocalhost -ANe"SELECT USER(),CURRENT_USER();
:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
输出自mysql -uroot -ppassword -hhostname -ANe"SELECT USER(),CURRENT_USER();
:
+----------------+----------------+
| root@hostname | root@% |
+----------------+----------------+
输出自mysql -uroot -ppassword -h127.0.0.1 -ANe"SELECT USER(),CURRENT_USER();
:
+----------------+----------------+
| root@localhost | [email protected] |
+----------------+----------------+