MySQL的 - 访问被拒绝的用户
问题描述:
所以,我创建了一个新的用户MySQL的 - 访问被拒绝的用户
CREATE USER servname_shb IDENTIFIED BY 'password';
授予他的所有特权:
GRANT ALL ON *.* TO servname_shb;
没有错误为止。然后,我尝试连接到数据库:
$dbhost = "localhost";
$dbname = "servname_shbusers";
$dbuser = "servname_shb";
$dbpass = "password";
$c = mysql_connect($dbhost,$dbuser,$dbpass) or die("Error:".mysql_error());
mysql_select_db($dbname) or die ("Error connecting to databse:".mysql_error());
,并得到一个错误:
Access denied for user 'servname_shb'@'localhost' (using password: YES) in <path>
我试过FLUSH特权,删除并重新创建用户 - 没有影响。我究竟做错了什么?
答
错误消息已经给你提示。使用此GRANT语句:
GRANT ALL ON *.* TO 'servname_shb'@'localhost';
或者更好,因为@grantk在评论中指出,完善的访问范围仅实际需要的。
答
您必须使用'servname_shb'@'localhost'
作为用户名。您的要求变为:
CREATE USER 'servname_shb'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'servname_shb'@'localhost';
注:'servname_shb'@'localhost'
只允许从本地主机连接。您可以使用'servname_shb'@'%'
来允许来自任何地方的连接。
只是想知道,如果“%”代表任何服务器,为什么地狱它不覆盖本地主机? – Arnthor 2011-05-03 23:01:01