Устранение ошибки «Локальный пароль MySQL запрещен»: методы и примеры кода

При работе с MySQL вы можете столкнуться с ошибкой «Отказано в локальном пароле MySQL», которая указывает на проблему с аутентификацией пароля для вашего локального сервера MySQL. В этой статье мы рассмотрим различные методы устранения и устранения этой ошибки, сопровождаемые примерами кода.

Метод 1: сброс пароля root MySQL
Одним из распространенных подходов к устранению ошибки «локальный пароль MySQL отклонен» является сброс пароля root. Вот как это можно сделать:

  1. Остановите сервер MySQL.

  2. Запустить сервер в безопасном режиме, пропуская таблицы грантов:

    $ sudo systemctl stop mysql
    $ sudo mysqld_safe --skip-grant-tables &
  3. Войдите на сервер MySQL как пользователь root:

    $ mysql -u root
  4. Обновите пароль root:

    mysql> FLUSH PRIVILEGES;
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
  5. Сбросить привилегии и выйти:

    mysql> FLUSH PRIVILEGES;
    mysql> exit;
  6. Перезапустите сервер MySQL:

    $ sudo systemctl start mysql

Метод 2: проверка привилегий пользователя MySQL
Иногда ошибка «Локальный пароль MySQL отклонен» возникает из-за недостаточных привилегий для учетной записи пользователя. Выполните следующие действия, чтобы проверить и предоставить необходимые привилегии:

  1. Войдите в MySQL как пользователь root:

    $ mysql -u root -p
  2. Проверьте права пользователя:

    mysql> SHOW GRANTS FOR 'username'@'localhost';
  3. Если у пользователя нет необходимых привилегий, предоставьте их:

    mysql> GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';
  4. Сбросить привилегии:

    mysql> FLUSH PRIVILEGES;

Метод 3: проверка соединения сокета MySQL
Ошибка отказа в локальном пароле MySQL также может возникнуть, если клиент не может подключиться к серверу MySQL через сокет. Чтобы проверить и обновить соединение сокета, выполните следующие действия:

  1. Откройте файл конфигурации MySQL (обычно расположенный по адресу /etc/mysql/my.cnfили /etc/my.cnf) в текстовом редакторе.

  2. Найдите параметр конфигурации socketв разделе [mysqld].

  3. Убедитесь, что путь к сокету соответствует фактическому пути к файлу сокета в вашей системе. По умолчанию обычно установлено значение /var/run/mysqld/mysqld.sock.

  4. Сохраните изменения и перезапустите сервер MySQL:

    $ sudo systemctl restart mysql

Ошибка «Локальный пароль MySQL отклонен» может расстраивать, но с помощью методов, описанных в этой статье, вы можете устранить и решить проблему. Не забудьте сбросить пароль root, проверить права пользователя и проверить соединение с сокетом MySQL. Выполнив эти шаги, вы сможете восстановить доступ к своему серверу MySQL и продолжить беспрепятственную работу с базами данных.