phpmyadmin не отображает схему

phpmyadmin не отображает схему

У меня есть сервер с большим количеством баз данных mysql. Недавно некоторые схемы перестали отображаться при входе в систему как Root.

root пользователь - до сих пор всегда использовался

Если я использую логин для этой конкретной базы данных, то я смогу ее увидеть.

прямой пользователь

«Владельцем» этой базы данных является пользователь root, но другие базы данных, которые также не видны пользователю root, принадлежат другим лицам.

Похоже, что базы данных, к которым мы недавно обращались и работали, исчезают, но теперь их не видно больше 5. Это не локальный кэш, и у любого, кто также использует вход root, та же проблема.

решение1

Если вашТЕКУЩИЙ ПОЛЬЗОВАТЕЛЬ()не сказано root@localhost, то у вас нет прав root и вам не разрешено подключаться как таковым.

Чтобы узнать, какие фактические привилегии у вас есть после подключения, запустите эту команду

SHOW GRANTS;

При подключении к определенной базе данных вы должны увидеть

  • таблицы этой базы данных
  • метаданные в INFORMATION_SCHEMA только для этой базы данных

Допустим, например, вы подключились к buyspace_systdb

Выход изSHOW GRANTS;скорее всего будет выглядеть примерно так

GRANT USAGE ON *.* ...
GRANT ALL PRIVILEGES ON buyspace_systdb.* TO ...

Пользователь root@localhostбудет работать, если вы входите в систему с этого локального сервера. Если вы входите в систему удаленно, root@localhostне позволитПОЛЬЗОВАТЕЛЬ()для аутентификации какТЕКУЩИЙ ПОЛЬЗОВАТЕЛЬ(). Доказательство этого в первом отображении в вашем вопросе. Обратите внимание, что вы можете видеть только information_schema. Он будет фактически пустым, за исключением information_schema.schemata, который будет иметь 1 или 2 записи. Если бы root@'%'существовал в mysql.userи имел те же привилегии, что и root@localhost, то ему было бы разрешено видеть все, как root@localhost.

MySQL имеет схему аутентификации, которая имеет эффект нисходящей спирали. Если пользователь, с которым вы пытаетесь соединиться, не существует, он попробует использовать более неопределенные имена пользователей (с учетом подстановочных знаков или ограниченных привилегий). См. мой пост DBA StackExchangeОшибка MySQL: Доступ запрещен для пользователя 'a'@'localhost' (использован пароль: YES) для получения более подробной информации по этому вопросу.

Нижняя граница: Вы не можете подключиться root@localhostиз удаленного местоположения

Связанный контент