немного сбивает с толку насчет синтаксиса в моих базах данных - PullRequest
0 голосов
/ 05 января 2019

Я пытаюсь проверить свои базы данных:

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 таблицах ??

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 05 января 2019

Вы можете найти информацию в базе данных тремя способами:

  1. База данных mysql, которая является внутренней схемой, используемой самим MySQL Server для собственной бухгалтерии.
  2. Команда SHOW, которая является самым ранним механизмом предоставления информации конечным пользователям.
  3. База данных information_schema, которая представляет собой «виртуальную» базу данных с динамически генерируемыми таблицами, позже была реализована как расширение команд SHOW.

Вы должны использовать любое, кроме первого (главным образом потому, что оно не содержит того, что, по вашему мнению, оно делает, а также потому, что обычные пользователи никогда не должны иметь права на чтение на нем). На практике я обнаружил, что использование SHOW или information_schema зависит от сервера: они иногда имеют очень разную производительность, и у вас не всегда есть разрешения для схемы.

0 голосов
/ 05 января 2019

mysql.db id внутренняя системная таблица, поэтому трудно найти официальную документацию, связанную с ней. Я нашел эту документацию MariaDB , в которой говорится:

mysql.db - системная таблица, содержащая информацию о привилегиях на уровне базы данных

В этой таблице хранится пользовательский GRANTS (который объясняет, почему вы видите один и тот же БД более одного раза). Очевидно, это не лучшее место для поиска доступных баз данных.

Для этого лучше всего использовать SHOW DATABASES или информационную схему .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...