MySQLWorkbench:获取"访问被拒绝.显示数据库权限所需"错误

mrj*_*per 3 mysql

所以我试图使用最新版本的MySQLWorkbench(6.3.6)远程连接到MySQL 5.1.x服务器.

我在MySQL提示符下运行了这些命令:

use mysql;
grant all privileges on mydb.*  to 'myuser'@'%' identified by 'mypassword';
flush privileges;
Run Code Online (Sandbox Code Playgroud)

我可以使用工作台连接到架构/数据库,但我无法获得表/其他架构对象的列表.

这是我得到的确切答案:

Error Code: 1227 Access denied; you need the SHOW DATABASES privilege for this operation
Run Code Online (Sandbox Code Playgroud)

这是我从节目赠款中得到的回应.我在localhost上以root用户身份运行它.我弄乱了可能识别我的数据库的任何信息.

mysql> show grants for 'mydb'@'%';
+-----------------------------------------------------------------------------------------------------+
| Grants for mydb@%                                                                                   |
+-----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'mydb'@'%' IDENTIFIED BY PASSWORD 'mypassword' |
| GRANT ALL PRIVILEGES ON `mydb`.* TO 'mydb'@'%'                                                      |
+-----------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

关于如何修复它的任何想法?谢谢.

chr*_*con 5

有了这条线

grant all privileges on mydb.* ...
Run Code Online (Sandbox Code Playgroud)

您将用户的权限授予mydb数据库中的每个表.SHOW DATABASES然而,这是一个全球特权,不受上述影响.

您可以在下面运行以允许SHOW DATABASES命令:

GRANT SHOW DATABASES ON *.* TO 'myuser'@'%'
Run Code Online (Sandbox Code Playgroud)