Несколько версий mysql с docker

Для одного проекта понадобилась старая версия MySQL-5.5. MySQL была установлена и настроена на рабочем компе и ставить старую версию было плохой идеей, так как остальные проекты над которыми я работал использовали более новую версию MySQL-5.6.

На помощь пришёл docker, созданный для изоляции приложений.

Так у меня появилась идея начать использовать БД разных версий в контейнере а не в системе.

Для начала надо установить сам докер.

Затем скачать образы с MySQL нужной версии и создать контейнер:

  • скачиваем mysql нужной версии
    • docker pull mysql:5.5
  • все файлы и настройки mysql хранятся не в контейнере. Создаём папку для данных и настроек mysql-5.5
    • mkdir -p /home/mysql/5.5
    • mkdir -p /home/mysql/etc
    • в /home/mysql/5.5/ будут содержаться файлы из /var/lib/mysql/ для версии mysql-5.5
    • в /home/mysql/etc файлы из /etc/mysql/conf.d
  • создаём контейнер
    • docker run --name mysql-5.5 -e MYSQL_ROOT_PASSWORD=mypassword -p 3306:3306 -v /home/mysql/5.5:/var/lib/mysql -v /home/mysql/etc:/etc/mysql/conf.d -d mysql:5.5
  • устанавливаем в систему mysql-client
    • sudo apt install mysql-client
  • пробуем соединиться с БД
    • mysql -u root -h0.0.0.0 -p
    • вводим пароль, что указали в MYSQL_ROOT_PASSWORD при создании контейнера
  • указать ip-адрес 0.0.0.0, в настройках проектов, использующих MySQL

Повторяем всё это для mysql-5.6, заменив в нужных местах версию.

Теперь можно запускать нужную версию MySQL с помощью команд:

docker start mysql-5.6
docker stop mysql-5.6; docker start mysql-5.5
blog comments powered by Disqus
π