Требуется безопасное подключение для аутентификации с использованием плагина 'caching_sha2_password'?

Как исправить проблему при подключении к MySQL в Ubuntu 23.04 через docker-compose.yml, когда появляется ошибка "Authentication requires secure connection"?
  • 12 марта 2024 г. 16:19
Ответы на вопрос 2
Для безопасного подключения с использованием плагина '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

Блин, целый день убил на это.
Похожие вопросы