在mysql上授予用户权限

时间:2013-11-10 11:24:38

标签: mysql

我正在尝试创建一个允许从任何IP地址访问mysql的用户。

我使用mysql -uroot -p

登录

然后发出:

CREATE USER 'user1'@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)

grant usage on *.* to user1@'%' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

flush privileges;
ERROR 1146 (42S02): Table 'mysql.servers' doesn't exist

service mysqld restart

然后我可以和用户一起登录,但是当我发出USE命令时,我收到错误

mysql> use db
  

ERROR 1044(42000):用户'user1'@'%'访问被拒绝到数据库   'DB'

我不确定我做错了什么

2 个答案:

答案 0 :(得分:1)

USAGE是无权限的同义词。为用户提供SELECT权限或所需的任何权限。顺便说一句:更改权限后你不需要重启mysqld。

答案 1 :(得分:0)

尝试升级/修复MySQL表

mysql_upgrade -T -u root -p

或者尝试使用数据库mysql

创建(以root身份,表服务器)
CREATE TABLE `servers` (
`Server_name` char(64) NOT NULL,
`Host` char(64) NOT NULL,
`Db` char(64) NOT NULL,
`Username` char(64) NOT NULL,
`Password` char(64) NOT NULL,
`Port` int(4) DEFAULT NULL,
`Socket` char(64) DEFAULT NULL,
`Wrapper` char(64) NOT NULL,
`Owner` char(64) NOT NULL,
PRIMARY KEY (`Server_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table';