Instalowanie serwera mysql w błędnym skrypcie powłoki bootstrap (jak pominąć instalację?)

16

Próbowałem zainstalować serwer mysql na mojej maszynie wirtualnej Vagrant Ubuntu 12.04 LTS. Gdy to zrobiłem, instalacja uruchomi się automatycznie. Widzę to w wyjściu Vagrant:

Chociaż nie jest to obowiązkowe, zdecydowanie zaleca się ustawienie hasła ││ dla administracyjnego użytkownika „root” MySQL. ││││ Jeśli to pole pozostanie puste, hasło nie zostanie zmienione. ││││ Nowe hasło dla Użytkownik „root” MySQL

Potem tekst wyjściowy przechodzi w szaleństwo - ± ├⎺ ⎼␊⎻┌▒␌␊ ┌␋␉⎽─┌␋├␊3-0 3.7.9-2┤␉┤┼├┤1 (┤⎽␋┼± ...- ale jest dość długi i pełen zielonych i czerwonych kolorów, więc uważam, że reszta instalacji jest zakończona.

Ale mogę potwierdzić brak instalacji po:

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

Jak mogę wysłać odpowiednie sygnały za pomocą skryptu powłoki, aby skonfigurować serwer MYSQL? A jeśli nie mogę, w jaki sposób mogę zatrzymać automatyczne uruchamianie konfiguracji lub zabić instalację po uruchomieniu, wciąż mając zainstalowany pakiet?

Sam
źródło
Jeśli reszta instalacji dobiegnie końca , nie będzie można ponownie zainstalować. Czy próbowałeś ustawić hasło przed instalacją?
Anthon
@Anthon Niestety nie sądzę, że dobrze to wytłumaczyłem w swoim poście: Mogę ręcznie skonfigurować to wszystko, ale moim celem jest zautomatyzowanie jak największej ilości konfiguracji. I mam wiele kroków po tym, które zależą od zainstalowania mysql (na przykład instalacji rvm).
Sam
O ile problemy nie są spowodowane nieczystym systemem (spróbuj zainstalować w czystej konfiguracji maszyny wirtualnej), brzmi to jak problem z samym pakietem. W takich przypadkach czasami załatałem plik instalacyjny (nie kompletna przebudowa, po prostu wypakuj / zmień / złóż razem) i podałem go z lokalnego repozytorium.
Anthon
@Anthon: / Miałem nadzieję znaleźć rozwiązanie, takie jak albo: a) Istnieje pakiet serwerów MYSQL, który nie uruchamia automatycznie kreatora konfiguracji lub b) istniał szybki sposób na złapanie tego rodzaju uruchomień ( apt-get install mysql-server | some_trap_cmd >> some.file). Wygląda na to, że coś takiego nie istnieje?
Sam
Problem polega na tym, że apt-get uruchamia skrypty w pliku instalatora, nie złapiesz w nich pułapki, chyba że załatałeś skrypty. Możesz także rzucić okiem na mysql 5.6 i zainstalować go ze startera , ale może to spowodować więcej problemów z pobieraniem wszystkich zależności, ale być może problemy z instalacją zniknęły.
Anthon

Odpowiedzi:

29

Możesz ustawić hasło root MySQL w pliku bootstrap, dodając polecenia debconf-set-selections przed uruchomieniem instalacji 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

Zakładam, że działa to na każdym systemie opartym na Debianie. Używam go codziennie, pudełko jest budowane całkowicie automatycznie.

CCoffee
źródło
1
Niesamowite! Nie znałem tego polecenia
AlvaroAV
1
Nie debconf-set-selectionsistniałem To działało idealnie. Dziękuję Ci!
Sam
3

Możesz zajrzeć do Puppet - jest doskonały do ​​automatycznego instalowania i konfigurowania oprogramowania. Jest też moduł MySQL , ale go nie próbowałem.

l0b0
źródło