尝试在我的 Fedora 服务器上安装 phpMyAdmin,但是如果我在浏览器中打开它,我会收到下一个错误:
2002 无法登录MySQL服务器
文件config.inc.php 有下一个内容:
<?php
/* Servers configuration */
$i = 0;
/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '123';
/* End of servers configuration */
$cfg['blowfish_secret'] = '4c45c50fe8b283.01675296';
$cfg['DefaultLang'] = 'en-utf-8';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
?>
补充一下,我在 mysql 中创建了用户 root,密码为 123,所以我可以登录:
mysql -h localhost -u root -p123
你能帮我看看哪里出了问题吗?
最佳答案
mysql -h localhost
实际上是通过 unix socket 连接的而不是到 127.0.0.1 的 TCP 连接。另一方面,显式指定 mysql -h 127.0.0.1
确实使用 TCP 方法。
所以您正在测试的是本地套接字连接,而不是网络套接字连接。确保 phpMyAdmin 使用相同的方法;线路
$cfg['Servers'][$i]['connect_type'] = 'tcp';
可能应该阅读
$cfg['Servers'][$i]['connect_type'] = 'socket';
你的 mysqld 可能有 networking disabled或拒绝从网络进行 root/123 访问的用户权限。
在您的示例中使用 -h localhost
您实际上是通过命名套接字进行连接。你可以自己看看 - 从 mysql 客户端类型“\s”:
mysql> \s
--------------
(....)
Connection: Localhost via UNIX socket
关于mysql - phpMyAdmin - 下一个配置有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3698981/