mysql显示不同数量的数据库

时间:2014-07-09 08:07:29

标签: mysql terminal

这是我在麦克风的终端。

130-229-0-129-dhcp:~ suyeshamatya$ mysql


mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
+--------------------+
2 rows in set (0.00 sec)

mysql> quit
Bye
130-229-0-129-dhcp:~ suyeshamatya$ mysql -u root -p
Enter password: 

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| lportal            |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

有人可以解释为什么mysql在没有任何用户名/密码的情况下连接时显示不同数量的数据库,以及连接 root 用户名/密码

更新

没有用户名/密码连接

mysql> show grants;
+--------------------------------------+
| Grants for @localhost                |
+--------------------------------------+
| GRANT USAGE ON *.* TO ''@'localhost' |
+--------------------------------------+
1 row in set (0.00 sec)

连接root用户名/密码

mysql> show grants;
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '********************' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION                                                                           |
+----------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

2 个答案:

答案 0 :(得分:1)

我不确定,但我认为“未知用户”没有权限查看其他数据库。请在mysql数据库中查看。

答案 1 :(得分:1)

授予 USAGE 表示根据Manual没有该用户的权限。因此,当您在没有用户名密码的情况下登录时。它将显示默认的mysql架构。如果您想要用户使用以下查询:

select User from mysql.user;

会抛出错误,如

SELECT command denied to user ''@'localhost' for table 'user';

这意味着您没有默认数据库的权限来查看用户详细信息。

如果您使用用户名和密码登录,则该用户创建的所有数据库都会显示给您。