MySQL - 用户拒绝访问

Arn*_*hor 0 php mysql permissions

所以,我创建了一个新用户

CREATE USER servname_shb IDENTIFIED BY 'password';
Run Code Online (Sandbox Code Playgroud)

授予他所有特权:

GRANT ALL ON *.* TO servname_shb;
Run Code Online (Sandbox Code Playgroud)

到目前为止没有错误.然后我尝试连接到数据库:

$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());
Run Code Online (Sandbox Code Playgroud)

并得到一个错误:

Access denied for user 'servname_shb'@'localhost' (using password: YES) in <path>
Run Code Online (Sandbox Code Playgroud)

我尝试了FLUSH PRIVILEGES,删除并重新创建用户 - 没有效果.我究竟做错了什么?

Thi*_*ilo 6

错误消息已经提供了一个提示.使用此grant语句:

GRANT ALL ON *.* TO 'servname_shb'@'localhost';
Run Code Online (Sandbox Code Playgroud)

或者更好,正如@grantk在评论中指出的那样,将访问范围细化为实际需要的范围.

  • 不要全部授予服务器中的每个数据库.只需授予用户对他们需要访问的数据库/表的权限. (4认同)