我们在生产数据库服务器上有一个 MySQL 数据库(“myhours”),只有一个用户(“edsf”)可以访问,而 root 用户则不能访问。以 root 用户身份执行的命令“SHOW DATABASES”不会列出“myhours”数据库。以“edsf”用户身份执行的相同命令会列出数据库:
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| myhours |
+--------------------+
2 rows in set (0.01 sec)
只有“edsf”用户可以使用“USE myhours”访问“myhours”数据库。这两个用户似乎都没有权限授予此数据库的进一步权限。
我的问题是:
Q1. root 用户没有权限使用数据库,这是怎么回事?这怎么可能呢?
SHOW GRANTS FOR 'root'@'localhost';
我觉得不错:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*xxx' WITH GRANT OPTION
Q2. 我该如何恢复这种情况,使该数据库对 MySQL 根用户可见并授予其进一步的权限?
在此先感谢您的帮助!
——Ed
答案1
您需要刷新权限
刷新权限;
以 root 身份连接并列出数据库