Ошибка подключения к контейнеру докеров из sql-клиента сети хоста

Я запускаю mysql с помощью файла композиции:

version: "3"
services:
  my-sql:
    image: mysql
    container_name: my-sql
    ports:
     - 3306:3306
    environment:
     MYSQL_ROOT_PASSWORD: passw0rd 
     MYSQL_USER: dbuser
     MYSQL_PASSWORD: pass1234
     MYSQL_DATABASE: connect_test

При поиске IP-адреса контейнера следующим образом:

root@sevenos:~# docker inspect my-sql | grep IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "",
                    "IPAddress": "172.18.0.2",

Когда я подключаюсь к my-sql client вне контейнера, я получаю следующее сообщение об ошибке:

root@sevenos:~# mysql -uroot -ppassw0rd -h 172.18.0.2 -P 3306
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be 
loaded: /usr/lib/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
0
855
1

Ответы 1

Вы можете запустить докер с помощью команды для загрузки плагина аутентификации по умолчанию, как показано ниже:

mysql:
    image: mysql
    container_name: mysql
    command: mysqld --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
        - MYSQL_ROOT_PASSWORD=root
    volumes_from:
        - mysql-data
    ports:
        - "3306:3306"

И перед запуском вы должны удалить все тома mysql:

docker-compose rm
docker volume rm list_of_your_volumes
docker-compose up

Вы можете посмотреть более подробную информацию: https://github.com/passbolt/passbolt_docker/issues/103

Другие вопросы по теме