如何在没有mysql表的情况下授予数据库权限?

时间:2011-08-30 07:58:56

标签: mysql

我想知道如何在没有表的情况下为数据库授予权限。

我尝试了以下内容:

将所有数据库名称授予用户名@ hostname;

它显示错误,说“无法在用户表中找到任何匹配的行”。

2 个答案:

答案 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'