Я пытаюсь обернуть один из наших проектов пакетами Ubuntu / CentOS. Проект представляет собой типичную веб-платформу, которая требует развернуть военный файл tomcat, создать несколько каталогов и запустить сценарий mysql, который создает новый пользователь + базу данных с некоторыми таблицами и т. Д.
Теперь я не уверен, как упаковать сценарий mysql. Это должно работать в любом случае, если mysql еще не установлен на машине, или когда у пользователя уже установлен рабочий mysql. Я не уверен, как войти в mysql с правами root, чтобы я мог добавить нового пользователя и таблицу.
Должен ли я запрашивать у пользователя его пароль mysql-root во время установки? Это может добавить путаницы. Или можно просто обойти аутентификацию? Предполагая, что процесс выполняется как sudo в любом случае, я мог бы выполнить mysqld_safe --skip-grant-tables & и войти в систему с помощью mysql-root без какого-либо пароля.
Что является обычной практикой при запуске сценария mysql во время установки пакета?
Обычная практика - не делать этого во время установки. Я могу вспомнить 3 веские причины:
Если вы хотите упростить процесс установки, вы можете делать то же, что и многие пакеты, и поставляться с конфигурацией по умолчанию. При первом доступе сайт может проверить, установлены ли по-прежнему значения по умолчанию, и отобразить инструкции по начальной настройке, если они установлены.
Если вы хотите развернуть красную ковровую дорожку, вы можете написать отдельный сценарий установки, который выполняет большую часть работы, или даже закодировать процесс в своем приложении; запрос новых учетных данных MySQL, сервера и имени БД. Вы должны поощрять пользователей делать их уникальными, а не предлагать значения по умолчанию. Получив эти данные, вы можете использовать их для загрузки исходной схемы и данных.