0

我正在尝试创建一个允许从任何 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

错误 1044 (42000): 拒绝用户 'user1'@'%' 对数据库 'db' 的访问

我不确定我做错了什么

4

2 回答 2

1

USAGE是没有特权的同义词。授予用户 SELECT 权限或该用户所需的任何权限。顺便说一句:更改权限后不需要重新启动 mysqld。

于 2013-11-10T11:32:16.507 回答
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';
于 2013-11-10T11:33:00.440 回答