没有从localhost看到数据库,但在连接到服务器时看到它

时间:2013-07-24 17:58:58

标签: mysql database-administration

我以“someuser”用户身份连接到mysql服务器。当我从localbox连接到服务器时,我会看到所有数据库。

但是,当我通过SSH进入服务器并使用“someuser”登录并执行show databases;时,我只看到两个:information_schematest

当我SSH到数据库时,如何查看所有数据库?

show grants;显示以下内容

mysql> show grants;
| Grants for dev@localhost                                             |
 | GRANT USAGE ON *.* TO 'someuser'@'localhost' IDENTIFIED BY PASSWORD '*' |

修改

当我通过SSH连接到服务器并使用root登录到mysql时,我可以看到所有数据库都很好。

1 个答案:

答案 0 :(得分:1)

GRANT USAGE不是您想要的。根据mysql文档:

USAGE   Synonym for “no privileges”

它在GRANT的全局级别用于修改帐户属性,例如资源限制或SSL特性,而不会影响现有帐户权限。

http://dev.mysql.com/doc/refman/5.1/en/grant.html

您需要为“someuser”用户授予用户需要查看的数据库的实际权限。例如,如果您授予mysql的选择权限。*:

GRANT SELECT ON mysql.* 
TO someuser@localhost IDENTIFIED BY "somepassword";
FLUSH PRIVILEGES;

现在,从localhost连接的某些用户在执行

时将能够看到mysql数据库
SHOW DATABASES;

但是,您可能希望仅为root用户保留对mysql数据库的访问权限。