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



         

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


  • Если вы вносите изменения в таблицы привилегий непосредственно (с помощью операторов INSERT или UPDATE), а ваши изменения, похоже, игнорируются, то следует выдать оператор FLUSH PRIVILEGES или выполнить команду mysqladmin flush-privileges - для того, чтобы заставить сервер перечитать таблицы привилегий. В противном случае ваши изменения вступят в силу лишь при последующем перезапуске сервера. Помните, что после того, как вы зададите пароль от имени пользователя, вам нужно будет указывать его только после сброса привилегий, т.к. серверу еще не будет известно о том, что вы изменили пароль!

  • При возникновении проблемы с доступом при использовании Perl-, PHP-, Python- или ODBC-программ, попробуйте установить соединение с сервером при помощи команды mysql -u user_name db_name или команды mysql -u user_name -pyour_pass db_name. Если ваш клиент mysql обеспечивает подсоединение, то проблема связана не с привилегиями доступа, а с вашей программой. (Заметим, что между -p и паролем пробела нет; для задания пароля можно также использовать синтаксическую структуру --password=your_pass. Если вы используете только саму опцию -p, MySQL запросит у вас пароль)

  • При тестировании запускайте демон mysqld с опцией --skip-grant-tables. Тогда вы сможете изменять таблицы привилегий MySQL и с помощью скрипта mysqlaccess проверять, произвели ли сделанные вами изменения желаемый эффект. Если результаты вас устраивают, выполните команду mysqladmin flush-privileges, чтобы приказать серверу mysqld приступить к использованию новых таблиц привилегий. Внимание: перезагрузка таблиц привилегий отменяет опцию --skip-grant-tables. Это позволяет заставить сервер приступить к использованию новых таблиц привилегий без завершения его работы и перезагрузки.

  • Если ничего не помогает, запустите демон mysqld daemon с опцией отладки (например --debug=d,general,query). В результате будет выведена информация о неудачных подсоединениях, с указанием хоста и пользователя, а также обо всех обработанных командах. Обратитесь к разделу See section E.1.2 Создание трассировочных файлов.

  • Если у вас имеется какая-либо проблема с таблицами привилегий MySQL и вы полагаете, что необходимо сообщить о ней в список рассылки, нужно обязательно приложить к своему отчету распечатку таблиц привилегий MySQL. Это можно сделать с помощью команды mysqldump mysql. Отчет о проблеме, как и в других случаях, отправляется с помощью скрипта mysqlbug. Обратитесь к разделу See section 1.8.1.3 Как отправлять отчеты об ошибках или проблемах. В некоторых случаях для выполнения скрипта mysqldump возможно, потребуется перезапустить mysqld с опцией --skip-grant-tables.




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