我可以通过root帐户创建新数据库。但我需要使用我创建的新用户创建新数据库。
以下是尝试使用新用户
创建数据库时遇到的错误ERROR 1044 (42000): Access denied for user 'user'@'localhost' to database 'new_db'
如何向" user"授予权限?所以它创建了任意数量的新数据库?
更新
这也是我的尝试:
mysql> grant all privileges on db.* to 'user'@'%' with create;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'create option' at line 1
mysql>
答案 0 :(得分:0)
PHP示例:
$con = new mysqli("...","...","..."); // CONNECT TO DB WITH ROOT USER
mysqli_query($con, "GRANT ALL PRIVILEGES ON newdb.* TO 'user'@'%' WITH GRANT OPTION");
命令行示例:
使用root用户登录,并使用:
GRANT ALL PRIVILEGES ON newdb.* TO 'user'@'%' WITH GRANT OPTION;
这将创建一个用户如何创建新数据库(但也会给他所有权限做坏事,所以明智地处理它......)。
这仅适用于创建:
GRANT CREATE ON *.* TO 'newuser'@'%' IDENTIFIED BY 'password'