#2002 Cannot log in to the MySQL server
错误,请尝试编辑phpmyadmin/config.inc.php
并更改:$cfg['Servers'][$i]['host'] = 'localhost';
为$cfg['Servers'][$i]['host'] = '127.0.0.1';
。这个解决办法来源于Ryan的博客。
编辑(20-Mar-2015):
请注意,如果是全新安装,可能不存在config.inc.php文件。您需要重命名/复制config.sample.inc.php文件,然后更改相关行。/etc/phpmyadmin/config.inc.php
。 - Imran Zahoor这篇文章虽然有些陈旧,但因为它是谷歌搜索结果中的第一篇,所以还是值得关注的。
请注意,当您的MySQL服务停止运行时,也会出现这种情况。
我通过简单地使用以下命令重启MySQL服务器解决了此问题:
/etc/init.d/mysql restart
在SSH中执行此命令,适用于CentOS/CPanel服务器。
背景:
我正在使用Linux Mint 13。在我的情况下,当我重新启动计算机并且DHCP为我的桌面分配了一个新的本地IP地址(从192.168.0.2到192.168.0.4)时,出现了这个错误。
sudo gedit /etc/mysql/my.cnf
bind-address = 192.168.0.2
为了
bind-address = localhost
bind-address
从默认的 127.0.0.1
更改为 localhost
解决了我在Ubuntu服务器上遇到的问题。 - Jared Dunham$cfg['Servers'][$i]['port'] = '3307'; // MySQL port
我安装了多个mysql实例,在这种情况下,我已经更新了my.ini以在端口3307上运行MySQL,但没有更新phpMyAdmin以反映新的端口。在我的情况下,配置文件config.inc.php中没有端口的行,所以我不知道它需要更新。
config.inc.php
移动到正确的位置而导致的。config
文件夹、执行chmod o+rw config
并访问localhost/phpmyadmin/setup
并按照那些步骤操作之后,您需要返回命令行并完成以下操作:mv config/config.inc.php . # move file to current directory
chmod o-rw config.inc.php # remove world read and write permissions
rm -rf config # remove not needed directory
您在计算机上安装了MySQL吗?看起来您正在使用Windows;MySQL在计算机上作为“服务”运行(右键单击我的电脑 -> 管理 -> 服务)。
mysqld
服务未启动时。$ sudo service mysqld restart
$ sudo service mysqld restart
Stopping mysqld: [ OK ]
Starting mysqld: [ OK ]
之后错误将不再出现。
P.S. 在EC2实例上,应按照顶部答案中提到的方式将主机从localhost
更改为127.0.0.1
。
我也经历过同样的事情,希望这个能帮到你。
cd /etc/init.d
./mysql start
请登录以访问MySQL和phpMyAdmin。
我曾多次在我们的设置中遇到此问题,因此我制作了一个检查清单。
这假定您希望phpMyAdmin使用UNIX套接字而不是TCP/IP连接本地MySQL。
UNIX套接字应该稍微快一些,因为它们具有更少的开销,并且可以更安全,因为只能本地访问。
服务
service mysqld status
service mysqld start
service mysqld restart
MySQL配置 (my.cnf)
protocol=tcp
PHP配置 (php.ini)
如果您可以从命令行本地连接,但无法从phpMyAdmin连接,并且套接字文件不在默认位置:
mysqli.default_socket = *location*
pdo_myql.default_socket
和mysql.default_socket
以确保service httpd restart
phpMyAdmin配置(config.inc.php)
$cfg['Servers'][$i]['host'] ='localhost';
$cfg['Servers'][$i]['socket'] = '*location*';
N.B.
正如@chk所指出的那样;将$cfg['Servers'][$i]['host']
从localhost
设置为127.0.0.1
只会导致连接使用TCP/IP而不是使用套接字,这更像是一种解决方法而不是解决方案。
MySQL配置设置bind-address=
也仅影响TCP/IP连接。
skip-networking
关闭 TCP/IP 监听。
sudo dpkg-reconfigure phpmyadmin
命令,您可以选择新的身份验证方法。使用主机IP/名称代替 localhost(它使用可能已被禁用的Unix套接字)。 - Bhargav Nanekalva