“Access denied for user 'xxx'@'yyy'”
当尝试使用PHP-mysqli访问数据库并且在使用命令行mysql工具时使用完全相同的用户名,密码,套接字,数据库和主机时,MySQL可能存在哪些可能的原因?
更新:表
中确实有三个用户mysql.user
,每个用户使用不同的主机(但使用相同的哈希密码),一个设置为localhost,一个设置为127.0.0.1,另一个设置为计算机的主机名.删除其中两个并将第三个主机更改为"%"只有一个效果:现在也使用命令行工具拒绝访问.我做了一个
select user();
在命令行之前,它产生了在php中被拒绝的相同的xxx @ yyy.
有时在php/mysql中,localhost和127.0.0.1之间存在差异
在mysql中,您根据主机名授予访问权限,对于localusers,这将是localhost.我已经看到php尝试连接'myservername'而不是localhost,尽管在配置'localhost'中定义了.
尝试在mysql中为127.0.0.1授予访问权限,并在php中通过127.0.0.1端口3306进行连接.