MySQL не видит базу данных - PullRequest
       3

MySQL не видит базу данных

4 голосов
/ 03 декабря 2010
GRANT SELECT ON source_starcraft.udb_ability TO `wade`@`localhost'

Когда я захожу с wade через PHPMyAdmin, я не вижу базу данных source_starcraft Я только выполнил этот запрос и создал пользователя до этого запроса.

Ответы [ 3 ]

10 голосов
/ 12 сентября 2012

Вот то, что мне очень помогло.На самом деле я работал с MySQL Workbench.

http://bobfield.blogspot.it/2006/10/i-cant-see-my-databases.html

Вкратце, это говорит о том, что если MySQL имеет учетную запись , и вы не можете войти в систему со своим пользователем, вы в конечном итоге вошли в системув качестве анонимного пользователя, без предварительного уведомления.Чтобы узнать это, вы можете сделать:

SELECT user(), current_user();

И вот почему:

Важно отметить, что SELECT USER(); показывает вам ваше текущее имя пользователя и хост.Другая команда SELECT CURRENT_USER(); показывает, что вы аутентифицировали как.

Действительно, в моем случае user() было mylogin@localhost, current_user() было @localhost(пользователь anon).

8 голосов
/ 25 августа 2012

Если пользователь, вошедший в phpMyAdmin, имеет правильные разрешения для просмотра базы данных, но вы по-прежнему не видите его, это может означать, что сам phpMyAdmin настроен так, чтобы не показывать его.Это проще всего проверить, введя SQL-запрос show databases; из phpMyAdmin.Если база данных, которую вы ищете, обнаруживается, пользователю разрешается просматривать ее, как минимум.

Существует несколько директив config, которые могут контролировать, какие базы данных видны в списках phpMyAdmin.Если вы использовали автоматический установщик или скрипт для добавления phpMyAdmin в учетную запись пользователя, он также мог установить один из only_db или hide_db.Они также описаны в официальной документации phpMyAdmin, которая должна была быть включена в вашу установку, и в wiki .

Если у вашего пользователя есть доступ для изменения настроек, вы можете сделать это.для текущего сеанса из phpMyAdmin в разделе «Настройки» и вкладке «Функции».Чтобы навсегда изменить эти настройки, вам нужно отредактировать config.inc.php .Его расположение зависит от того, где phpMyAdmin установлен в вашей системе.

1 голос
/ 03 декабря 2010

Похоже, что у меня может возникнуть конфликт / путаница в отношении того, какому хосту было предоставлено разрешение и какие из них используются.

После FLUSH PRIVILEGES, чтобы исключить эту возможность, я 'd посмотреть, какого пользователя я идентифицировал, как только я вошел в систему:

SELECT user();

Обратите внимание, что MySQL всегда связывает имя входа с самым конкретным хостом.См. Документ .Затем сравните это с тем, что находится в базе данных привилегий.

SELECT * FROM mysql.user WHERE user='wade';

SELECT * FROM mysql.db WHERE user='wade';

Чтобы разрешить ситуацию, либо REVOKE, либо DELETE + FLUSH PRIVILEGES вызывающий проблемы конфликт (будьте осторожны, чтобы не нарисовать себя вугол), или GRANT больше привилегий, чем у вашего пользователя.

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