При работе с MySQL вы можете столкнуться с ошибкой «Отказано в локальном пароле MySQL», которая указывает на проблему с аутентификацией пароля для вашего локального сервера MySQL. В этой статье мы рассмотрим различные методы устранения и устранения этой ошибки, сопровождаемые примерами кода.
Метод 1: сброс пароля root MySQL
Одним из распространенных подходов к устранению ошибки «локальный пароль MySQL отклонен» является сброс пароля root. Вот как это можно сделать:
-
Остановите сервер MySQL.
-
Запустить сервер в безопасном режиме, пропуская таблицы грантов:
$ sudo systemctl stop mysql $ sudo mysqld_safe --skip-grant-tables & -
Войдите на сервер MySQL как пользователь root:
$ mysql -u root -
Обновите пароль root:
mysql> FLUSH PRIVILEGES; mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; -
Сбросить привилегии и выйти:
mysql> FLUSH PRIVILEGES; mysql> exit; -
Перезапустите сервер MySQL:
$ sudo systemctl start mysql
Метод 2: проверка привилегий пользователя MySQL
Иногда ошибка «Локальный пароль MySQL отклонен» возникает из-за недостаточных привилегий для учетной записи пользователя. Выполните следующие действия, чтобы проверить и предоставить необходимые привилегии:
-
Войдите в MySQL как пользователь root:
$ mysql -u root -p -
Проверьте права пользователя:
mysql> SHOW GRANTS FOR 'username'@'localhost'; -
Если у пользователя нет необходимых привилегий, предоставьте их:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost'; -
Сбросить привилегии:
mysql> FLUSH PRIVILEGES;
Метод 3: проверка соединения сокета MySQL
Ошибка отказа в локальном пароле MySQL также может возникнуть, если клиент не может подключиться к серверу MySQL через сокет. Чтобы проверить и обновить соединение сокета, выполните следующие действия:
-
Откройте файл конфигурации MySQL (обычно расположенный по адресу
/etc/mysql/my.cnfили/etc/my.cnf) в текстовом редакторе. -
Найдите параметр конфигурации
socketв разделе[mysqld]. -
Убедитесь, что путь к сокету соответствует фактическому пути к файлу сокета в вашей системе. По умолчанию обычно установлено значение
/var/run/mysqld/mysqld.sock. -
Сохраните изменения и перезапустите сервер MySQL:
$ sudo systemctl restart mysql
Ошибка «Локальный пароль MySQL отклонен» может расстраивать, но с помощью методов, описанных в этой статье, вы можете устранить и решить проблему. Не забудьте сбросить пароль root, проверить права пользователя и проверить соединение с сокетом MySQL. Выполнив эти шаги, вы сможете восстановить доступ к своему серверу MySQL и продолжить беспрепятственную работу с базами данных.