Как исправить проблему при подключении к MySQL в Ubuntu 23.04 через docker-compose.yml, когда появляется ошибка "Authentication requires secure connection"?
Для безопасного подключения с использованием плагина 'caching_sha2_password' вам необходимо убедиться, что ваше соединение защищено с использованием SSL или TLS. Для этого выполните следующие шаги: 1. Сначала установите и настройте SSL/TLS сертификат на вашем сервере MySQL. Это обеспечит защищенное соединение между клиентом и сервером. 2. Затем убедитесь, что ваш MySQL сервер установлен и настроен для использования 'caching_sha2_password' плагина для аутентификации. 3. При подключении к серверу MySQL через docker-compose.yml, убедитесь, что в вашем файле конфигурации Docker Compose вы указали правильные параметры для безопасного подключения (например, использование SSL, корректные учетные данные и т.д.). 4. При наличии ошибки "Authentication requires secure connection" убедитесь, что ваш клиент MySQL также настроен для использования SSL/TLS при подключении к серверу. Если после выполнения указанных шагов проблема не была решена, рекомендуется проверить логи сервера MySQL и клиента для поиска дополнительной информации об ошибке и ее возможных причинах.
Все решил проблему. <br/> Во первых нужно выключить контейнеры. <br/> <code>docker-compose down</code> <br/> <br/> Удалить образ mysql <br/> <pre><code>docker images
docker rmi image_id</code></pre> <br/> <br/> Новый docker-compose.yml который работает и с phpmyadmin <br/> <pre><code># Use root/example as user/password credentials
version: '3.1'
services:
nginx:
container_name: nginx_laravel9
build:
context: .
dockerfile: docker/nginx.docker
volumes:
- ./:/var/www
# - ./docker/nginx/ssl:/etc/nginx/ssl
ports:
- "8088:80"
links:
- php-fpm
php-fpm:
container_name: php_laravel9
build:
context: .
dockerfile: docker/php/Dockerfile
restart: unless-stopped
tty: true
working_dir: /var/www
volumes:
- ./:/var/www
- ./docker/php/local.ini:/usr/local/etc/php/conf.d/local.ini
links:
- mysql
mysql:
container_name: mysql_laravel9
image: mysql:8.3.0
restart: always
environment:
# MYSQL_ROOT_USER: root
# MYSQL_ROOT_PASSWORD: root
MYSQL_PASSWORD: root
volumes:
- "./docker/mysql:/var/lib/mysql"
ports:
- "33062:3306"
command: --authentication_policy=mysql_native_password
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin_laravel9
restart: always
ports:
- '8084:80'
environment:
MAX_EXECUTION_TIME: 600
UPLOAD_LIMIT: 800M
PMA_HOST: mysql
PMA_PORT: 3306
PMA_ARBITRARY: 1
depends_on:
- mysql</code></pre> <br/> <br/> Пароль от mysql <br/> root <br/> root <br/> <br/> Пароль от phpmyadmin берется от mysql <br/> Там у меня 3 поля <br/> mysql <br/> root <br/> root <br/> <br/> Блин, целый день убил на это.