Назад | Перейти на главную страницу

Как включить сценарий mysql в сценарий / пакет установки

Я пытаюсь обернуть один из наших проектов пакетами Ubuntu / CentOS. Проект представляет собой типичную веб-платформу, которая требует развернуть военный файл tomcat, создать несколько каталогов и запустить сценарий mysql, который создает новый пользователь + базу данных с некоторыми таблицами и т. Д.

Теперь я не уверен, как упаковать сценарий mysql. Это должно работать в любом случае, если mysql еще не установлен на машине, или когда у пользователя уже установлен рабочий mysql. Я не уверен, как войти в mysql с правами root, чтобы я мог добавить нового пользователя и таблицу.

Должен ли я запрашивать у пользователя его пароль mysql-root во время установки? Это может добавить путаницы. Или можно просто обойти аутентификацию? Предполагая, что процесс выполняется как sudo в любом случае, я мог бы выполнить mysqld_safe --skip-grant-tables & и войти в систему с помощью mysql-root без какого-либо пароля.

Что является обычной практикой при запуске сценария mysql во время установки пакета?

Обычная практика - не делать этого во время установки. Я могу вспомнить 3 веские причины:

  • По соображениям безопасности не рекомендуется даже пытаться отправлять комбинации имени пользователя и пароля по умолчанию с пакетами, поскольку они станут слабым местом для многих установок. Это немного усложняет работу для конечного пользователя, но гораздо безопаснее настаивать на том, чтобы они установили свои собственные учетные данные для службы.
  • Вы не можете заранее знать, что пользователь захочет разместить БД на том же сервере, что и приложение, поэтому попытка настроить ее во время установки будет раздражать и агрессивно для некоторых пользователей.
  • Запрашивать пароль суперпользователя во время установки нельзя. Я бы Ctrl + C прямо здесь и пробежал милю, если бы увидел это. Пытаться обход еще хуже - злоупотребление повышенными привилегиями.

Если вы хотите упростить процесс установки, вы можете делать то же, что и многие пакеты, и поставляться с конфигурацией по умолчанию. При первом доступе сайт может проверить, установлены ли по-прежнему значения по умолчанию, и отобразить инструкции по начальной настройке, если они установлены.

Если вы хотите развернуть красную ковровую дорожку, вы можете написать отдельный сценарий установки, который выполняет большую часть работы, или даже закодировать процесс в своем приложении; запрос новых учетных данных MySQL, сервера и имени БД. Вы должны поощрять пользователей делать их уникальными, а не предлагать значения по умолчанию. Получив эти данные, вы можете использовать их для загрузки исходной схемы и данных.