【发布时间】:2019-01-05 14:02:36
【问题描述】:
我尝试检查我的数据库:
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| db1 |
| db2 |
| sys |
+--------------------+
6 rows in set (0,09 sec)
我也尝试检查我的数据库:
mysql> SELECT Db FROM mysql.db;
+--------------------+
| Db |
+--------------------+
| performance_schema |
| sys |
| db1 |
| db2 |
| db1 |
| db2 |
+--------------------+
6 rows in set (0,00 sec)
为什么SHOW DATABASES; 和SELECT Db FROM mysql.db; 的结果不同?
我可以在mysql.db 表上更新我的数据库吗??
提前致谢。
【问题讨论】:
-
最好远离系统数据库。如果您想了解您的数据库,请使用 information_schema.tables、Information_schema.columns 等
-
mysql.db是一个内部表。不要使用它来更改您的数据库,因为通过更新此表,您将绕过 MySQL 为您做的一些家务,并有损坏数据库的风险。请改用SHOW DATABASES、CREATE DATABASE等。 -
@AlexandervanOostenrijk P.Salmon 为什么我在
mysql.db表上有多个db1数据库? -
如果您转储
db表的所有列,您会看到 MySQL 在您的数据库中存储了不同位的信息,这就是为什么其中一些可能会出现多次。