Как исправить проблему при подключении к 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 и клиента для поиска дополнительной информации об ошибке и ее возможных причинах.
Все решил проблему.
Во первых нужно выключить контейнеры.
docker-compose down
Удалить образ mysql
docker images docker rmi image_id
Новый docker-compose.yml который работает и с phpmyadmin
# 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
Пароль от mysql
root
root
Пароль от phpmyadmin берется от mysql
Там у меня 3 поля
mysql
root
root
Блин, целый день убил на это.