mysql 8.0 — сервер запрашивает неизвестный клиенту метод аутентификации (PHP)

Я использую MySQL версии 8 на PHP 7.0.

Я получаю следующую ошибку при попытке подключиться к моей базе данных из PHP:

Ошибка подключения: SQLSTATE [HY000] [2054] Сервер запросил метод проверки подлинности, неизвестный клиенту

Как это исправить?

4

Решение

Вы должны изменить настройки MySQL.
Отредактируйте файл my.cnf и поместите этот параметр в раздел mysqld:

[mysqld]
default_authentication_plugin= mysql_native_password
11

Другие решения

@mohammed, это обычно связано с плагином аутентификации, который использует ваша база данных mysql.

По умолчанию и по какой-то причине плагином mysql 8 по умолчанию является auth_socket. Приложения чаще всего ожидают входа в вашу базу данных, используя пароль.

Если вы еще не изменили свой плагин аутентификации по умолчанию для mysql, вы можете сделать это:
1. Войдите как root в mysql.
2. Запустите эту команду sql:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password
BY 'password';

Замените «пароль» вашим корневым паролем. Если ваше приложение не входит в вашу базу данных с пользователем root, замените пользователя ‘root’ в приведенной выше команде на пользователя, которого использует ваше приложение.

Цифровой океан объясняет здесь немного больше Установка Mysql

5

Я пробовал много способов, но только эта работа для меня

Спасибо обходной путь

Проверьте свои
**. Окр

MYSQL_VERSION=latest

затем введите эту команду

$ docker-compose exec mysql bash
$ mysql -u root -p

(войдите как root)

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
ALTER USER 'default'@'%' IDENTIFIED WITH mysql_native_password BY 'secret';

затем зайдите в phpmyadmin и войдите как:

  • хозяин -> MySQL
  • пользователь -> корень
  • пароль -> корень

надеюсь, это поможет

2

проверьте имя пользователя и пароль сервера sql, если ваши работающие xampp или wampp проверяют имя пользователя и пароль phpmyadmin

-2
По вопросам рекламы [email protected]