这是我第一次提出一个问题--我真的很困惑。
我已经在linux (Ubuntu)上运行mysql,今天早上我尝试登录到phpMyAdmin。我收到一个错误,说我不能登录。因此,我转到命令行,输入mysql -u root -p,当提示输入密码时,输入正确。然后,我收到以下错误:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)奇怪的是:
我不能通过命令行上的mysql连接,也不能通过phpMyAdmin连接,但是我的所有WordPress站点都正常工作。但是,如果我尝试使用WP站点的凭据登录,我会得到与上面相同的错误。
我查看了etc/mysql/my.cnf并看到:bind-address = 127.0.0.1。我试着把这个注释掉,重新启动mysql,结果没有结果。我试着把绑定地址更改为本地主机,但还是没有运气。现在它又回到了bind-address = 127.0.0.1。这是我为第二个Linode设置的相同设置,与这个设置具有完全相同的私有ip/网络设置(我同时设置了它们的两个静态ip),但是另一个服务器运行良好(可以连接到MySQL),而这个服务器似乎讨厌我。
因此,最大的问题是:是什么导致mysql不再允许我连接,为什么我的WordPress站点仍然可以使用它们的凭据(但我不能通过phpmyadmin或命令行),以及我如何防止这一点在未来逃避我?
可能相关的细节:
cat /etc/hosts包含localhost 127.0.0.1 localhost.localdomain localhostping localhost确实返回结果: ping本地主机PING localhost.localdomain (127.0.0.1) 56(84)字节的数据。64字节来自localhost.localdomain (127.0.0.1):icmp_req=1 ttl=64 time=0.066 ms 64字节来自localhost.localdomain (127.0.0.1):icmp_req=2 ttl=64 time=0.062 ms非常感谢你帮了我。
发布于 2014-01-16 16:40:26
在设置mysql时,我遇到了类似的情况。MySQL并不认为localhost和127.0.0.1是相同的可访问地址(尽管文档经常交替使用它们)。诀窍是,在您的情况下,通过连接来更改谁可以连接,以及如何连接。我会尝试显式地连接回送IP:
mysql -h 127.0.0.1 -u root -p如果这样做不起作用,您将不得不挖掘您的wordpress设置,以找到主机,端口,用户名和密码设置。好消息是,如果wordpress在工作,就有办法进去。
连接之后,您的问题就出现在用户表的mysql数据库(use mysql)中。要么是访问控制只允许127.0.0.1/localhost/external IP中的一个,要么是匿名用户扰乱了您的连接。
要查看是否有任何匿名用户:
SELECT User,host from mysql.user;如果你看到有空白@ localhost等的东西,那就是它们。移除:
DELETE From mysql.user where User='' and host='localhost';
FLUSH PRIVILEGES;https://askubuntu.com/questions/406022
复制相似问题