我正在尝试创建一个允许从任何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'
我不确定我做错了什么
答案 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';