这是我在麦克风的终端。
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)
答案 0 :(得分:1)
我不确定,但我认为“未知用户”没有权限查看其他数据库。请在mysql数据库中查看。
答案 1 :(得分:1)
授予 USAGE 表示根据Manual没有该用户的权限。因此,当您在没有用户名和密码的情况下登录时。它将显示默认的mysql架构。如果您想要用户使用以下查询:
select User from mysql.user;
会抛出错误,如
SELECT command denied to user ''@'localhost' for table 'user';
这意味着您没有默认数据库的权限来查看用户详细信息。
如果您使用用户名和密码登录,则该用户创建的所有数据库都会显示给您。