使用正确的凭据拒绝访问,这是怎么回事?
Access denied with correct credentials, what is going on?
作为根用户:
GRANT ALL PRIVILEGES ON * . * To 'JKR'@'%' IDENTIFIED BY "";
FLUSH PRIVILEGES;
在PHP中:
$con = new PDO("mysql:host=127.0.0.1;dbname=jkr;charset=utf8", "JKR", "");
错误信息:
Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1044] Access denied for user ''@'localhost' to database 'jkr'' in C:\xampp\www\jkr\core\connect.php:6
出于某种原因只能以 root 身份工作...
还有我怎么会得到 Access denied for user ''@'localhost'
?
很可能您的系统上有一个匿名用户 ''@'localhost'
。匿名用户是名称被忽略的用户。
如果您使用来自 localhost
的 JKR
连接到 MySQL,它会将您与匿名用户匹配。
您可以使用SELECT User, Host from mysql.user;
进行检查
有关 MySQL 匹配用户和权限的方式的详细讨论,请参阅 https://dev.mysql.com/doc/refman/5.7/en/connection-access.html。
在我的例子中,mysql 帐户是 REQUIRE SSL
;必须提供 ssl_ca
文件(至少)。其他 ssl 参数在这里:http://dev.mysql.com/doc/refman/5.7/en/secure-connection-options.html
作为根用户:
GRANT ALL PRIVILEGES ON * . * To 'JKR'@'%' IDENTIFIED BY "";
FLUSH PRIVILEGES;
在PHP中:
$con = new PDO("mysql:host=127.0.0.1;dbname=jkr;charset=utf8", "JKR", "");
错误信息:
Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1044] Access denied for user ''@'localhost' to database 'jkr'' in C:\xampp\www\jkr\core\connect.php:6
出于某种原因只能以 root 身份工作...
还有我怎么会得到 Access denied for user ''@'localhost'
?
很可能您的系统上有一个匿名用户 ''@'localhost'
。匿名用户是名称被忽略的用户。
如果您使用来自 localhost
的 JKR
连接到 MySQL,它会将您与匿名用户匹配。
您可以使用SELECT User, Host from mysql.user;
有关 MySQL 匹配用户和权限的方式的详细讨论,请参阅 https://dev.mysql.com/doc/refman/5.7/en/connection-access.html。
在我的例子中,mysql 帐户是 REQUIRE SSL
;必须提供 ssl_ca
文件(至少)。其他 ssl 参数在这里:http://dev.mysql.com/doc/refman/5.7/en/secure-connection-options.html