Ошибка laradock на phpmyadmin - не удается подключиться
Я только начал использовать docker, laradock и laravel, после настройки всей среды я попытался войти в систему на своем phpmyadmin и не смог войти.
Я искал почти везде и не мог найти способ исправить это, так что вы, ребята, моя последняя надежда, смеется.
Docker версия 17.12.0-ce, сборка c97c6d6 Вот мой докер 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, чтобы исправить эту проблему.
Это вызвано обновлением до libmysqlclient
начиная с версии MySQL 8.0.4, которая изменила метод аутентификации по умолчанию на более безопасныйsha256_password
.
Как только Laravel и другие программные пакеты, такие как PhpMyAdmin, будут обновлены для поддержки этого нового и более безопасного метода аутентификации, эта проблема исчезнет сама собой.
Если вы НЕ МОЖЕТЕ удалить и перестроить существующий том данных mysql, просто:
- Войдите в свой контейнер mysql (
docker-compose exec mysql mysql -uroot -proot
) - Выполнить
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
- Повторите шаг 2 для всех других пользователей, которых вы, возможно, создали.
Если вы МОЖЕТЕ воссоздать объем данных mysql:
- Измените свой
my.conf
файл. Под[mysqld]
добавить следующий параметр конфигурацииdefault_authentication_plugin=mysql_native_password
- Удалите свой том mysql
rm -rf ~./laradock/data/mysql
- Восстановите контейнер mysql
docker-compose -d --build mysql phpmyadmin