PHP 7.2.2 + mysql 8.0 PDO дает: метод проверки подлинности неизвестен клиенту [caching_sha2_password]

Я использую php 7.2.2 и mysql 8.0.

Когда я пытаюсь подключиться с помощью правильных учетных данных, я получаю эту ошибку:

PDOException::("PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password]")

Вам нужна помощь в устранении неполадок.

Ответ 1

Изображение установки MySql: Если вы хотите использовать mysql> = 8 и вам не важно caching_sha2_password, просто выберите вторую опцию при установке.

Ответ 2

Нашел это где-то, не помню, где (или я бы кредитует), но он работает для меня, пока MySQL 8 не станет лучше. И PHP готов для MySQL caching_sha2_password.

В оболочке MySQL (командная строка, что угодно):

CREATE USER [email protected] identified with mysql_native_password by 'password';

Где имя пользователя - это имя пользователя, а пароль - пароль для этого пользователя.

Затем вы можете добавить разрешения в оболочку - или в Workbench, поскольку пользователь теперь существует с типом аутентификации: стандартный.

Ответ 4

Чтобы использовать MySQL 8 (с новым методом аутентификации), вы можете просто обновить свой PHP.

MySQL 8

При запуске версии PHP до 7.1.16 или PHP 7.2 до 7.2.4, установите плагин пароля по умолчанию для MySQL 8 Server на mysql_native_password, иначе вы увидите ошибки, аналогичные запрашиваемому серверу методу аутентификации, неизвестному клиенту [caching_sha2_password], даже если caching_sha2_password не используется

ссылка: https://www.php.net/manual/en/ref.pdo-mysql.php