Справочное руководство по MySQL версии 4.1.1-alpha



         

Глава 4.2.11 Причины появления ошибок Access denied ("в доступе отказано") - часть 2


shell> mysqladmin --no-defaults -u root ver

  • Запускали ли вы скрипт mysql_fix_privilege_tables при обновлении имеющейся инсталляции MySQL, если установленная версия - более ранняя, чем 3.22.11, а обновляется она до 3.22.11 или более поздней? Если нет, сделайте это. Начиная с MySQL 3.22.11, когда оператор GRANT стал функциональным, структура таблиц привилегий изменилась.

  • Если во время сеанса ваши привилегии изменились, то, возможно, их изменил суперпользователь. Перезагрузка таблиц привилегий отражается не только на новых подсоединениях клиентов, но также на уже имеющихся, как это показано в разделе See section 4.3.3 Когда изменения в привилегиях вступают в силу.

  • Если не удается добиться, чтобы пароль работал, помните, что функция PASSWORD() должна использоваться, если вы задаете пароль с помощью операторов INSERT, UPDATE или SET PASSWORD. Если же вы задаете пароль с помощью оператора GRANT ... INDENTIFIED BY или команды mysqladmin password, функция PASSWORD() не нужна. Обратитесь к разделу See section 4.3.7 Задание паролей.

  • localhost - это синоним имени вашего локального хоста, и, если хост явно не задан, также устанавливаемое по умолчанию имя хоста, к которому клиенты пытаются подключиться. Однако подсоединения к localhost не действуют, если в вашей рабочей системе используются MIT-потоки и MySQL старше версии 3.23.27 (подсоединения к localhost

    осуществляются с использованием сокетов Unix, а они не поддерживались тогда технологией MIT-потоков). Чтобы в таких системах эта проблема не возникала, следует явным образом задать имя серверного хоста с помощью опции --host. Таким образом будет установлено подсоединение к серверу mysqld по протоколу TCP/IP. В этом случае в записях таблицы user, хранящейся на серверном хосте, должно быть указано реальное имя хоста. (Это справедливо даже для тех случаев, когда клиентская программа и сервер запускаются на одном хосте).

  • Если при попытке подсоединения к базе данных с помощью команды mysql -u user_name db_name возникает ошибка Access denied, причина этого, возможно, кроется в таблице user. Чтобы проверить это, выполните команду mysql -u root mysql и введите следующий SQL-оператор:




    Содержание  Назад  Вперед