终端下可以登录mysql,但是用phpmyadmin无法登录提示:#2002 无法登录 MySQL 服务器 解决方法如下: 修改config.inc.php文件,将config.inc.php 中
$cfg['Servers'][$i]['host'] = 'localhost';改成:
$cfg['Servers'][$i]['host'] = '127.0.0.1';如果修改过端口,记得也要修改端口号!
$cfg['Servers'][$i]['host'] = '127.0.0.1:3312';还要添加:
$cfg['Servers'][$i]['hide_db'] = ‘information_schema’;//使用登陆后看不见information_schema数据库,隐藏数据库!如果要隐藏多个可以用"|"来隔开其他数据库名,例如:
$cfg['Servers'][$i]['hide_db'] = '(information_schema|phpmyadmin|mysql)'只是为了安全的目的隐藏起来。 如果想要隐藏全部以a开头的数据库,可以使用
'^a'
于是把配置文件里的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时搞混。