我有一个关于如何授予MySQL用户帐户权限的问题。我有一个MySQL用户帐户,在我的示例代码中,我想授予整个数据库的权限。当我运行代码时,我收到以下错误:
用户'user'@'10.%'拒绝访问数据库'testDB'
这是我的源代码:
<?php
$connection = mysql_connect("sql.example.com", "user", "password");
mysql_select_db("test");
$query = mysql_query("GRANT ALL PRIVILEGES ON test.* To 'user'@'localhost'
IDENTIFIED BY 'password'");
if (!$query) {
die(mysql_error());
}
echo "Success!";
?>
为什么我会收到该错误?有人可以帮我解决这个问题吗?我真的很感激!
答案 0 :(得分:0)
我猜这与php一样是本机查询的问题 - &gt; 您需要在grant语句之后执行“flush privileges” - 否则用户表不会更新。
答案 1 :(得分:0)
看起来您无法使用该凭据访问您的mysql服务器:
"sql.example.com", "user", "password"
首先尝试使用密码创建用户,然后再连接到mysql。
使用root用户以这种方式进入mysql服务器:
shell> mysql --user=root mysql
之后创建您要连接的用户:
shell> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
然后给他许可:
shell> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' WITH GRANT OPTION;
不要忘记设置主机连接,在示例中它是localhost,但在你的情况下,它可能是其他东西。