Встановлення mysql-сервера в бродячому сценарії оболонки завантажувальної програми (як пропустити налаштування?)


16

Я намагався встановити mysql-сервер на свою віртуальну машину Vagrant Ubuntu 12.04 LTS. Коли я це зробив, налаштування автоматично запускається. Я бачу це у виході Vagrant:

Хоча це не є обов'язковим, настійно рекомендується встановити пароль ││ для адміністративного "root" користувача MySQL.││││ Якщо це поле залишити порожнім, пароль не буде змінено. ││││ Новий пароль для Користувач MySQL "root"

Після цього вихідний текст переходить у сірий - ± ├⎺ ⎼␊⎻┌▒␌␊ ┌␋␉⎽─┌␋├␊3-0 3.7.9-2┤␉┤┼├┤1 (┤⎽␋┼± ...- але досить довгий і повний зелених та червоних кольорів, тому я вважаю, що решта встановлення завершується.

Але я можу підтвердити відсутність встановлення після:

sudo apt-get install --just-print mysql-server-5.5 
...
The following NEW packages will be installed:
  mysql-server-5.5

Як я можу надсилати правильні сигнали через скрипт оболонки для налаштування сервера MYSQL? Або якщо я не можу, як я можу зупинити автоматичний запуск конфігурації або вбити установку, щойно запущена, поки ще встановлений пакет?


Якщо інша частина встановлення завершена , це не дозволить вам встановити знову. Ви намагалися встановити пароль перед встановленням?
Антон

@Anthon Вибачте, я не думаю, що я це добре пояснив у своєму дописі: я можу вручну налаштувати все це, але моя мета - автоматизувати якомога більше моїх налаштувань. Після цього у мене є багато кроків, які залежать від встановлення mysql (встановлення наприклад rvm).
Сем

Якщо проблеми не викликані нечистою системою (спробуйте встановити в чистому режимі установки віртуальної машини), це звучить як проблема з самим пакетом. У таких випадках я іноді виправляв інсталяційний файл (не повне відновлення, просто витягнути / змінити / скласти) і подав його з локального сховища.
Антон

@Anthon: / Я сподівався знайти таке рішення, як а) a) існує серверний пакет MYSQL, який не запускає майстра конфігурації, або б) існував невдалий спосіб лову таких запусків ( apt-get install mysql-server | some_trap_cmd >> some.file). Здається, можливо, такого немає?
Сем

Проблема полягає в тому, що apt-get запускає скрипти в файлі інсталятора, ви не збираєтеся ловити пастку в тих, якщо ви не будете латати сценарії. Ви також можете поглянути на 5.6 mysql та встановити його із стартової панелі , але це може створити більше проблем із затягуванням усіх залежностей, але, можливо, проблем із встановленням вже немає.
Антон

Відповіді:


29

Ви можете встановити кореневий пароль MySQL у вашому завантажувальному файлі, додавши команди debconf-set-select перед запуском установки apt-get:

#!/usr/bin/env bash

debconf-set-selections <<< 'mysql-server mysql-server/root_password password MySuperPassword'
debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password MySuperPassword'
apt-get update
apt-get install -y mysql-server

Я припускаю, що це працює в будь-якій системі на базі Debian. Я використовую його щодня, коробка будується повністю автоматично.


1
Дивовижно! Я не знав цієї команди
AlvaroAV

1
Я не debconf-set-selectionsіснував. Це спрацювало чудово. Дякую!
Сем

3

Можливо, ви захочете заглянути в Лялечку - це чудово для автоматичної установки та налаштування програмного забезпечення. Також є модуль MySQL , але я його не пробував.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.