我想知道如何在没有表的情况下为数据库授予权限。
我尝试了以下内容:
将所有数据库名称授予用户名@ hostname;
它显示错误,说“无法在用户表中找到任何匹配的行”。
答案 0 :(得分:4)
你有没有试过这种东西,
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)
答案 1 :(得分:0)
您的服务器可能已启用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'