Автор оригинала: Arpit Bhayani.
Несколько версий MySQL работает на одном сервере
Существует множество ситуаций, когда требуется, где вам нужно запустить несколько экземпляров MySQL на одном компьютере.
Некоторые ситуации:
- Проверьте новый релиз MySQL, оставляя существующую настройку производства, ненужно
- Дайте разные пользователи доступ к другому
MySQLD
серверы, которые они управляют собой
Эта проблема
У меня есть машина с 5 продуктами, уже установленными. Все продукты используют MySQL 5.5 в качестве базы данных по умолчанию. Теперь пришло время обновить все, кроме одного продукта, чтобы использовать MySQL 5.6. В таблице ниже приведены требования до и после версии MySQL для различных продуктов. Глядя на стол, мы обнаруживаем, что все продукты, кроме продукта C, хотят использовать MySQL 5.6.
Продукт А. | MySQL 5.6 | MySQL 5.5. |
Продукт Б. | MySQL 5.6 | MySQL 5.5. |
Продукт C. | MySQL 5.5. | MySQL 5.5. |
Продукт D. | MySQL 5.6 | MySQL 5.5. |
Продукт E. | MySQL 5.6 | MySQL 5.5. |
Поскольку все, кроме одного продукта требуют MySQL 5.6, давайте сначала установим его, а затем мы будем работать, чтобы выяснить способ установки MySQL 5,5.
Установка MySQL 5.6.
sudo apt-get update sudo apt-get install mysql-server-5.6 mysql-server-core-5.6 mysql-client-5.6 mysql-client-core-5.6
На данный момент у нас есть MySQL 5.6, слушая в порту 3306
(Порт по умолчанию)
Подход к решению
Есть несколько подходов, с которыми вы можете добиться нескольких версий MySQL, работающих на одной машине. Некоторые из них
- Используйте двоичные файлы конкретной версии
- Построить все из источника MySQL
Вопросы выше подходов:
Очевидно, что мы можем иметь только одну версию MySQL Setup на машине, используя процедуру установки по умолчанию с APT-Get
Отказ Следовательно, если мы попытаемся установить одну версию по другому, она заменит первую версию и сохранит вторую версию. Таким образом, мы не можем иметь 2 версиях MySQL с использованием процедуры установки по умолчанию.
Создание всего с нуля включает много осложнений на уровне источника. Чтобы отладить любые проблемы, которые могут возникнуть, вы должны знать, что происходит в различных сценариях/командах, которые вы запускаете. Я проводил день в здании из источника, но в конечном итоге оказалось полной тратой времени, усилий и отладки.
Докер к спасению
Если бы у нас был контейнер, в котором у нас установлено MySQL 5.5, и если мы сможем опубликовать порту (ы) контейнера к хосту, то мы можем подключиться к MySQL контейнера, как и локальная база данных.
Мы можем иметь все вышеперечисленное с Докер Отказ Если вы не знаете, что такое Docker, пожалуйста, прочитайте этот официальный Документация Отказ
Установка докера
Чтобы установить Docker на вашу машину, выполните следующую команду на своей оболочке.
curl -sSL https://get.docker.com/ | sh
Свернуть выключение контейнера MySQL 5.5
Выполнить следующую команду; Это будет загружать изображение MySQL 5.5 и раскрутит контейнер. Этот контейнер будет иметь MySQL 5.5, установленный на порту 3306
Отказ Но на хост-машине, порт 3310
будет перенаправлен.
sudo docker run --name mysql-55-container -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=rootpassword -d mysql:5.5
ЗАМЕТКА: Пароль для пользователя root пароль root ; Вы можете изменить его на что-нибудь.
Подключиться к MySQL 5.5
mysql -u root -p --host=127.0.0.1 --port=3310
Подключиться к MySQL 5.6
mysql -u root -p
И VOILA! У вас есть мой SQL 5.5 и MySQL 5.6, установленный и работает на одном компьютере.
Теперь вы можете настроить свой прикладной продукт C, чтобы использовать хост 127.0.0.1
и порт 3310
И, таким образом, у вас есть продукты A, B, D и E, работающие на MySQL 5.6 и продукта C, работающие на MySQL 5.5.
Оригинал: «https://www.codementor.io/@arpitbhayani/setup-multiple-mysql-servers-with-different-versions-docker-du107solq»