phpMyAdmin auth_type 'config'配置失效问题求助
解决Ubuntu 16.04 phpMyAdmin改auth_type为config后异常的问题
嘿,这个问题跟Ubuntu 16.04版本本身关系不大,核心是MySQL的认证插件在搞鬼!我来给你拆解下原因和解决步骤:
核心原因:MySQL root用户的认证方式
Ubuntu 16.04默认安装的MySQL 5.7+版本中,root用户默认使用auth_socket插件认证,而不是传统的密码验证。这种模式下,只有通过本地socket(比如mysql -u root直接登录)才能访问root账号,即使你知道密码,用phpMyAdmin的config模式填密码也没用——因为PHP是通过TCP连接MySQL,不是socket,auth_socket不认这个。
解决步骤
1. 检查root用户的认证插件
先登录MySQL(你已经能通过mysql -u root登录,正好用这个):
mysql -u root
然后执行查询:
SELECT user, plugin FROM mysql.user WHERE user = 'root';
如果结果里plugin列显示auth_socket,那就是这个问题了。
2. 修改root用户的认证方式为密码验证
在MySQL命令行里执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的root密码'; FLUSH PRIVILEGES;
把你的root密码换成你实际用的密码,执行完退出MySQL。
3. 确保phpMyAdmin的配置文件正确且安全
打开/etc/phpmyadmin/config.inc.php,确认以下配置项:
$cfg['Servers'][$i]['auth_type'] = 'config'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = '你的root密码';
另外,为了安全,要限制这个配置文件的可读性,避免密码泄露:
sudo chmod 640 /etc/phpmyadmin/config.inc.php
4. 重启Apache服务
让配置生效:
sudo systemctl restart apache2
现在再访问phpMyAdmin,应该就能直接用root账号登录了。
内容的提问来源于stack exchange,提问作者Denis
相关产品推荐
相关产品推荐

