#2002 无法登录 MySQL 服务器

 

#2002 – 服务器没有响应 (或者本地 MySQL 服务器的套接字没有正确配置)

连接远程数据库,就是虚拟主机数据库服务器却是没有问题的。使用linux终端连接

mysql -h 127.0.0.1 -u root -p

也没有任何问题。

而ping localhost,返回也是正常的,说明linux知道localhost就是本机的。

[root@localhost www]# ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.062 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.076 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.077 ms
^C
— localhost ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 2697ms
rtt min/avg/max/mdev = 0.062/0.071/0.077/0.011 ms

感觉很怪异,google一下,有这样的解决方案:

要将 config.inc.php 中
$cfg['Servers'][$i]['host'] = ’localhost’;
改成 $cfg['Servers'][$i]['host'] = ’127.0.0.1′;
还要添加
$cfg['Servers'][$i]['hide_db'] = ‘information_schema’;//使用登陆后看不见information_schema数据库

于是把配置文件里的host改成127.0.0.1,再连接,好了,连接正常。($cfg['Servers'][$i]['hide_db'] = ‘information_schema’;这一句加不加都无所谓,不影响连接数据库)

为什么在linux下localhost就是不能连接呢?查mysql官方文档[参看这里],看到有这样的句话:

如果未指定指定主机名或指定了特殊的主机名localhost,将使用Unix套接字。

Unix套接字默认为/tmp/mysql.sock,而本机并没有配置这样的套接字文件,所以自然是连接失败了。

官方文档确实非常重要,比网上的一般的解决方法都更权威有效得多。

 

 

PS:新版本的PhpMyAdmin 增强了安全性,需要在配置文件设置一个短语密码。否则进入之后会有“配置文件现在需要一个短语密码。”的红色警叹提示。

解决方法:

编辑config.inc.php


$cfg['Servers'][$i]['auth_type'] = 'cookie'; 
$cfg['blowfish_secret'] = 'abcde';(其中的"abcde"自定义)


这个密码用于Cookies的加密,以免多个PhpMyAdmin或者和其他程序共用Cookies时搞混。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值