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



         

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


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

  • Запускали ли вы после инсталляции MySQL скрипт mysql_install_db для установки начального содержимого таблиц привилегий? Если нет, сделайте это. Обратитесь к разделу See section 4.3.4 Задание изначальных привилегий MySQL. Проверьте первоначальные привилегии с помощью следующей команды:

    shell> mysql -u root test

    Подсоединение должно произойти без сбоя. Следует также убедиться, что в каталоге базы данных MySQL имеется файл `user.MYD'. Обычно он находится в директории `PATH/var/mysql/user.MYD', где PATH - путь к корневому каталогу инсталляции MySQL.

  • После новой инсталляции следует подсоединиться к серверу и создать пользователей, а также установить для них права доступа:

    shell> mysql -u root mysql

    Сервер разрешит подсоединение, т.к. пользователь MySQL с именем пользователя root исходно не имеет пароля. Но в этом заключается также и риск нарушения безопасности системы, поэтому при создании остальных пользователей MySQL, вам, помимо прочего, следует задать пароль для пользователя root. Если при попытке подсоединения от имени пользователя root вы получите следующую ошибку:

    Access denied for user: '@unknown' to database mysql

    это означает, что в таблице user отсутствует запись со значением 'root' в столбце User и mysqld не может определить имя хоста для вашего клиента. В этом случае необходимо перезапустить сервер с опцией --skip-grant-tables и отредактировать файл `/etc/hosts' или `\windows\hosts', добавив в него запись для вашего хоста.

  • Если вы столкнетесь с такой ошибкой, как:

    shell> mysqladmin -u root -pxxxx ver Access denied for user: 'root@localhost' (Using password: YES)

    это означает, что используется неверный пароль. Обратитесь к разделу See section 4.3.7 Задание паролей. Если вы забыли пароль для пользователя root, то перезапустите mysqld с опцией --skip-grant-tables и измените пароль. Обратитесь к разделу See section A.4.2 Как переустановить забытый пароль пользователя root. Такая ошибка может появляться даже в том случае, если вы не задавали пароля вообще - это значит, что в каком-то файле `my.ini' имеется неверный пароль. Обратитесь к разделу See section 4.1.2 Файлы параметров `my.cnf'. Отменить использование файлов опций можно с помощью опции the --no-defaults, как показано ниже:




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