Ошибка laradock на phpmyadmin - не удается подключиться

Я только начал использовать docker, laradock и laravel, после настройки всей среды я попытался войти в систему на своем phpmyadmin и не смог войти.

Я искал почти везде и не мог найти способ исправить это, так что вы, ребята, моя последняя надежда, смеется.

Docker версия 17.12.0-ce, сборка c97c6d6 Вот мой докер ps
докер PS

Мой проект.env

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

И вот ошибки, которые я получаю от phpmyadmin (localhost:8080)

#2054 - The server requested authentication method unknown to the client
mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]
mysqli_real_connect(): (HY000/2054): The server requested authentication method unknown to the client

1 ответ

Решение

Самое простое решение - вернуться к более ранней версии MySQL. В любом случае, это хорошая идея, поскольку 8.0 - это "релиз разработчика". К сожалению, в настоящее время в Laradock есть ошибка, которая устанавливает 8.0 независимо от того, что вы установили в файле.env. Я отправил пиар на Laradock, чтобы исправить эту проблему.

https://github.com/laradock/laradock/pull/1409

Это вызвано обновлением до libmysqlclientначиная с версии MySQL 8.0.4, которая изменила метод аутентификации по умолчанию на более безопасныйsha256_password.

Как только Laravel и другие программные пакеты, такие как PhpMyAdmin, будут обновлены для поддержки этого нового и более безопасного метода аутентификации, эта проблема исчезнет сама собой.

Если вы НЕ МОЖЕТЕ удалить и перестроить существующий том данных mysql, просто:

  1. Войдите в свой контейнер mysql (docker-compose exec mysql mysql -uroot -proot)
  2. Выполнить ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
  3. Повторите шаг 2 для всех других пользователей, которых вы, возможно, создали.

Если вы МОЖЕТЕ воссоздать объем данных mysql:

  1. Измените свой my.confфайл. Под[mysqld] добавить следующий параметр конфигурации default_authentication_plugin=mysql_native_password
  2. Удалите свой том mysql rm -rf ~./laradock/data/mysql
  3. Восстановите контейнер mysql docker-compose -d --build mysql phpmyadmin
Другие вопросы по тегам