我想知道如何在没有表的情况下授予数据库权限。
我尝试了以下方法:
GRANT ALL ON databasename to username@hostname;
但是它显示了一个错误,说“在用户表中找不到任何匹配的行”。
我想知道如何在没有表的情况下授予数据库权限。
我尝试了以下方法:
GRANT ALL ON databasename to username@hostname;
但是它显示了一个错误,说“在用户表中找不到任何匹配的行”。
你有没有尝试过类似这样的东西?
mysql> create database amarokdb;
Query OK, 1 row affected (0.00 sec)
mysql> grant usage on *.* to amarokuser@localhost identified by 'amarokpasswd';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on amarokdb.* to amarokuser@localhost ;
Query OK, 0 rows affected (0.00 sec)
amarokdb.*
时,它仅授予该数据库的权限。如果您使用 *.*
,则适用于所有数据库。 - akostadinov很可能您的服务器启用了NO_AUTO_CREATE_USER模式。
根据MySQL手册:(http://dev.mysql.com/doc/refman/5.6/en/server-sql-mode.html)
NO_AUTO_CREATE_USER阻止GRANT语句在没有指定非空密码的情况下自动创建新用户。(MySQL 5.0.2中添加)
因此,您可以删除NO_AUTO_CREATE_USER模式,或者像这样创建带有密码的用户:
GRANT ALL ON databasename TO username@hostname IDENTIFIED BY 'your non-empty password here'