2015-04-09 4 views
0

В моем приложении Java используется база данных MariaDB (MySQL). Трудность на данный момент заключается в развертывании с использованием простого пакета, чтобы они могли быть легко установлены на другом сервере (сервер, скорее всего, отключен от внешнего мира, поэтому никакие сценарии загрузки не будут работать). В любом случае это можно сделать? Возможно, скриптинг или упаковка? У кого-нибудь есть опыт в выполнении такой задачи? Я уверен, что это обычная ситуация для серверных приложений интрасети. Как они обычно делаются?Развертывание и установка приложения вместе с базой данных (MySQL или MariaDB) --offline environment -

Я провел свое исследование, и я знаю, что есть альтернативная база данных, такая как Derby, которая может быть встроена. Это, безусловно, вариант, но я хотел бы придерживаться MySQL, если это возможно. Кроме того, это проект с открытым исходным кодом, поэтому нет необходимости в юридических консультациях. Я пытаюсь решить проблему, а не бегать по ней - по крайней мере, пока.

* Предположим, сервер не на форуме * не несут никакой привилегии суперпользователя на сервере * Простота установки & Configure (возможно, не процедура установки) * Автоматизация процесса

ответ

0

Итак, для кого-то, кто будет искать способ сделать это. Я отвечу на свой вопрос.

  1. Как показано ниже, вы можете рассмотреть возможность использования платформ, таких как Docker, но для этого требуется установить Docker на сервер. Кроме того, я не уверен, что контейнер linux может работать так же, как приложение, физически установленное на сервере. Вероятно, это зависит от приложения. Так как он довольно новый, вам также придется много спорить с ним, чтобы привыкнуть к нему.

  2. Другое решение - загрузить бинарный tar и следовать инструкциям по установке, которые не требуют доступа к корню (вот где я начал работать с сервером Linux x86_64: http://www.bluecrownsoftware.com/article/271/Installing-MySQL-without-Root-Access-on-Linux). Затем вы можете застегнуть весь каталог. Незначительные настройки после миграции могут выполняться со сценариями. Однако для этого требуется, чтобы развертывания были готовы для всех видов ОС. Опасайтесь ... Мне приходилось сталкиваться с бесчисленными ошибками из-за плохо написанных сценариев. Они в основном писали сценарии, предполагая, что ваша среда не является локальной. Может быть, я могу помочь вам, если у вас проблемы. По крайней мере, я получил его для работы над этой ОС.

  3. Вы можете искать портативные версии, такие как (https://code.google.com/p/pts-mini-gpl/wiki/Portable_MariaDB), но маловероятно, что они существуют для каждой ОС.

Я, вероятно, придерживаюсь варианта 2 для своего проекта, так как у меня есть только пара ОС, чтобы беспокоиться о моем проекте сейчас. GL всех. Дело закрыто.

0

Вы исследовали возможность запуска MySQL/mariadb в контейнере.

+0

Вы имеете в виду контейнер, как Докер? Я просто посмотрел на него, и я думаю, что это действительно отличный инструмент, но я не знаю, как это относится к моему вопросу. Вы имеете в виду, что я должен сначала распространить Docker? Даже если я могу и переместить установленный образ mysql на сервер, не будет ли я запускать программу в контейнере, а не в самом сервере? –

+0

Так что мне интересно, будет ли что-то вроде этого работать: 1. Создайте контейнер для докеров mysql, и на самом деле на докер-хабе есть уже несколько хороших контейнеров. 2. Предоставьте сценарий установки пакета, который будет - устанавливать докеры на хосте, и вытащить ваш контейнер mysql из dockerhub или вашего личного репо, вы даже можете упаковать изображение, если вы считаете, что проблема связана с внешней сетью. Следующим шагом будет запуск контейнера (-p 3306 для демонстрации портов mysql -d daemon), а затем развертывание вашего приложения. Ваше приложение должно иметь возможность общаться с mysql, запущенным в контейнере. –

+0

Благодаря вашему предложению я много узнал о Докере. Я думаю, что это была бы очень полезная платформа для других проектов. Но пока я думаю, что это решение добавляет еще одно приложение для добавления. Я не упоминал ранее в вопросе, но отсутствие доступа к корню для меня было другим условием, поэтому Докер не был лучшим ответом. Наверное, я просто ответил на свой вопрос. В любом случае, спасибо! –