Свежие комментарии

    Exact matches only
    Search in title
    Search in content
    Search in posts
    Search in pages
    { "homeurl": "https://theideahosting.com/", "resultstype": "vertical", "resultsposition": "hover", "itemscount": 8, "imagewidth": 70, "imageheight": 70, "resultitemheight": "70px", "showauthor": 0, "showdate": 0, "showdescription": 1, "charcount": 3, "noresultstext": "No results!", "didyoumeantext": "Did you mean:", "defaultImage": "https://theideahosting.com/wp-content/plugins/ajax-search-lite/img/default.jpg", "highlight": 0, "highlightwholewords": 1, "scrollToResults": 0, "resultareaclickable": 1, "defaultsearchtext": "Поиск..", "autocomplete": { "enabled" : 0, "lang" : "en" }, "triggerontype": 1, "triggeronclick": 1, "redirectonclick": 0, "trigger_on_facet_change": 1, "settingsimagepos": "right", "hresultanimation": "fx-none", "vresultanimation": "fx-none", "hresulthidedesc": "1", "prescontainerheight": "400px", "pshowsubtitle": "0", "pshowdesc": "1", "closeOnDocClick": 1, "iifNoImage": "description", "iiRows": 2, "iitemsWidth": 200, "iitemsHeight": 200, "iishowOverlay": 1, "iiblurOverlay": 1, "iihideContent": 1, "iianimation": "1", "analytics": 0, "analyticsString": "", "redirectonclick": 0, "redirectClickTo": "results_page", "redirect_on_enter": 0, "redirectEnterTo": "results_page", "overridewpdefault": "0" }

    Из рубрики «Нам пишут» — Несколько MySQL версий на сервере (VDS)

    Home  /  Инструкции  /  Из рубрики «Нам пишут» — Несколько MySQL версий на сервере (VDS)

    Продолжая рубрику «Нам пишут», хотелось бы рассказать о том, как просто и быстро установить на сервер вторую (и третью) версию MySQL на сервер так, чтобы они друг другу не мешали.

    Периодически нам в поддержку поступают вопросы о том, можно ли запустить MySQL сервер нескольких версий на VDS или обращаются с проблемами после попытки обновить версию.

    Вариант 1, простой и быстрый:
    Шаг 1: Написать в поддержку TheIDEAHosting и попросить поставить отдельную версию MySQL, указав желаемый пароль и порт (при наличии предпочтений).
    Шаг 2: Получить ответ от поддержки и пользоваться MySQL с нужной версией.
    Конец :-)

    Вариант 2, для интересующихся:
    Мы будем использовать Docker — открытую платформу для доставки приложений. Иными словами, мы сделаем на сервере контейнер, внутри которого запустим MySQL сервер с нужной версией, а затем «пробросим» порт из этого контейнера.
    Для примеров в этой статье, я буду использовать сервер с CentOS 7 x64, на котором уже установлен MySQL (MariaDB) 5.5, а ставить дополнительно мы будем MySQL 5.6

    Итак, сначала нужно установить Docker.
    В CentOS 7 это можно сделать из репозитория всего одной командой:
    yum install docker
    mltpl-mysql-01

    После выполнения команды, yum отобразит список операций и попросить подтверить/отменить их:
    mltpl-mysql-02

    Да, можно дописать -y перед install и yum не будет этого спрашивать, но лучше так не делать без уверенности в том, что yum не удалит какой-нибудь пакет из-за потенциально возможного конфликта.

    Убедиться в отсутствии конфликта очень просто, достаточно взглянуть в «резюме» операций, где yum кратко расскажет про количество устанавливаемых, обновляемых и удаляемых пакетов:
    mltpl-mysql-03

    В данном случае yum говорит о том, что поставит 1 пакет и 18 зависимостей, операция не повлечет удалений, поэтому можно прололжать:
    mltpl-mysql-04

    Говорим yum’y «Y», нажимаем Enter и ожидаем примерно минуту, по итогу видим следующую картину:
    mltpl-mysql-05

    Такая картина говорит нам о том, что Docker успешно установлен. Теперь осталось запустить сервис Docker’a и сказать системе запускать его автоматически при загрузке.

    Docker Engine — обычный сервис, поэтому и запускается он как любой другой сервис:
    systemctl start docker
    mltpl-mysql-06

    Затем включаем автостарт как для обычного сервиса:
    systemctl enable docker.service
    mltpl-mysql-07

    Отлично! Первый этап завершен, Docker работает. Теперь нужно всего одной командой запустить контейнер MySQL.
    docker run --name mysql-56 -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=TheIDEAHostingManual -d mysql:5.6

    Давайте разберем программу по переменным, чтобы точно понимать происходящее:
    —name mysql-56 задает Docker контейнеру имя «mysql-56». Можно задать любое удобное.
    -p 127.0.0.1:3310:3306 пробрасывает (делает доступным, грубо говоря) порт 3306 из контейнера на порт 3310 внутреннего интерфейса сервера. Иными словами, по порту 3310 можно будет зайти на MySQL с альтернативной версией.
    -e MYSQL_ROOT_PASSWORD=TheIDEAHostingManual задает root пароль MySQL. Разумеется, нужно указать что-то более случайное, либо предоставить это коту, аккуратно положив на клавиатуру.
    -d говорит Docker’у, что контейнер должен быть запущен в фоне.
    mysql:5.6 указывает «образ» контейнера, в данном случае mysql с версией 5.6. Вместо «5.6» можно указать другую версию, например 5.5.
    mltpl-mysql-08

    При первом запуске, Docker ругнется на отсутствие образа MySQL и начнет его загружать, это абсолютно нормально. Можно откинуться на спинку кресла и дождаться завершения.

    После завершения процесса, Docker уведомит о завершении и отобразит идентификационный код контейнера:
    mltpl-mysql-09

    На этом установка дополнительного сервера MySQL закончена! Теперь можно заходить и в «стандартную» версию:
    mysql
    (обратите внимание на версию в третьей белой строке)
    mltpl-mysql-10

    И в дополнительно установленную:
    mysql -h 127.0.0.1 -P3310 -uroot -pTheIDEAHostingManual
    -h 127.0.0.1 указывает сервер подключения, в данном случае это и есть наш сервер (локальный интерфейс).
    -P3310 указывает порт подключения, 3310 в нашем случае.
    -uroot указывает пользователя подключения, root в нашем случае.
    -pTheIDEAHostingManual указывает пароль (можно написать -p, тогда система запросит пароль и он не будет отображаться, что безопаснее).
    (обратите внимание на версию в третьей белой строке)
    mltpl-mysql-11

    Если Вам захотелось попробовать, Вы можете смело попросить сервер в нашей поддержке (support@theideahosting.com или https://billing.theideahosting.com). :-)
    Если же у Вас возникли вопросы и/или пожелания, смело можете писать или в поддержку, или мне на amoskvin@theideahosting.com, буду рад помочь.

     
    Artem E. Moskvin
    Chief Technical Officer
    E-Mail: amoskvin@theideahosting.com

    Category:
      Инструкции
    this post was shared 0 times
     000

    Leave a Reply

    Your email address will not be published.