有这个问题了一些关于我们的准备时间,所以我我做了一个检查清单。
这里假设您希望phpMyAdmin使用UNIX套接字而非TCP/IP在本地连接到MySQL。
UNIX套接字应该稍微快一点,因为它们的开销较小,并且可以更安全,因为它们只能在本地访问。
服务
- 是mysqld服务运行?
service mysqld status
- ..如果不是
service mysqld start
- 自服务启动以来,配置是否已更改?
service mysqld restart
MySQL的配置(my.cnf中)
- 检查不存在非套接字的客户端协议集,例如
protocol=tcp
- 检查插座的位置是可访问的,并具有正确的权限
PHP配置(PHP。INI)
如果你可以在本地通过命令行从phpMyAdmin的连接,而不是和套接字文件不在默认位置:
- 设置的mysqli默认插座到新的位置:
mysqli.default_socket = *location*
- ...我还设置了
pdo_myql.default_socket
和mysql.default_socket
只是为了确保
- 重新启动您的Web服务(在我的案件的httpd)
service httpd restart
phpMyAdmin的配置(config.inc.php中)
- 检查主机设置为localhost:
$cfg['Servers'][$i]['host'] = 'localhost';
- 插座的位置也可以在这里设置:
$cfg['Servers'][$i]['socket'] = '*location*';
NB
正如@chk指出的那样;将$cfg['Servers'][$i]['host']
从localhost
设置为127.0.0.1
只会导致连接使用TCP/IP而不是使用套接字,而不是解决方案。
MySQL配置设置bind-address=
也只影响TCP/IP连接。
如果您不需要远程连接,建议关闭使用skip-networking
进行侦听的TCP/IP。
您是否使用Cookie身份验证?这是你在配置文件中没有数据库证书的地方(我认为主机除外),并且您在Web应用程序中提供了用户名和密码。我相信,或者你可以在配置文件中提供凭证,并跳过登录过程(显然只适用于非互联网服务器)。您可以使用您用于登录到phpMyAdmin的凭据从mysql控制台(/path/to/mysql.exe -u用户名-h本地主机-p)登录吗? – halfer 2012-08-03 13:55:14
什么都不会工作,我也发生同样的错误,我尝试了很多事情,但没有运气。我建议你将你的mysql数据文件夹保存到一些安全的地方并重新安装phpmyadmin。它会正常工作,不要尝试下次输入密码 – 2013-03-11 17:21:29
@Reddox答案解决了我的问题。也许这应该标记为已解决。 – apis17 2013-07-26 00:20:34