Installazione di mysql-server nello script shell bootstrap vagrant (come saltare l'installazione?)


16

Ho provato a installare mysql-server sulla mia macchina virtuale Vagrant Ubuntu 12.04 LTS. Quando l'ho fatto, l'installazione si avvia automaticamente. Posso vederlo nell'output di Vagrant:

Sebbene non sia obbligatorio, si consiglia vivamente di impostare una password ││ per l'utente "root" amministrativo di MySQL.││││ Se questo campo viene lasciato vuoto, la password non verrà modificata. ││││ Nuova password per Utente "root" di MySQL

Dopodiché il testo di output va in tilt - ± ├⎺ ⎼␊⎻┌▒␌␊ ┌␋␉⎽─┌␋├␊3-0 3.7.9-2┤␉┤┼├┤1 (┤⎽␋┼± ...- ma è piuttosto lungo e pieno di colori verde e rosso, quindi credo che il resto dell'installazione sia in fase di completamento.

Ma posso confermare la mancanza di installazione dopo:

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

Come posso inviare i segnali giusti attraverso uno script di shell per configurare il server MYSQL? O se non ci riesco, come posso interrompere l'avvio automatico della configurazione o terminare l'installazione una volta avviata mentre il pacchetto è ancora installato?


Se il resto dell'installazione è in fase di completamento , non ti consentirà di eseguire nuovamente l'installazione. Hai provato a impostare una password prima dell'installazione?
Anthon,

@Anthon Mi dispiace non credo di averlo spiegato bene nel mio post: posso configurare manualmente tutto questo, ma il mio obiettivo è automatizzare il più possibile il mio setup. E dopo ho molti passaggi che dipendono dall'installazione di mysql (ad esempio l'installazione di rvm).
Sam,

A meno che i problemi non siano causati da un sistema sporco (provare a installare in una configurazione pulita della macchina virtuale), questo sembra un problema con il pacchetto stesso. In questi casi a volte ho corretto il file di installazione (non una ricostruzione completa, ho solo estratto / modificato / messo insieme) e l'ho servito da un repository locale.
Anthon,

@Anthon: / Speravo di trovare una soluzione come a) Esiste un pacchetto server MYSQL che non avvia automaticamente la procedura guidata di configurazione oppure b) c'era un modo bash-y per intercettare questo tipo di lanci ( apt-get install mysql-server | some_trap_cmd >> some.file). Forse non esiste nulla del genere?
Sam,

Il problema è che apt-get esegue gli script all'interno del file di installazione, non riuscirai a catturare una trappola a meno che non correggi gli script. Potresti anche dare un'occhiata al 5.6 mysql e installarlo dal launchpad , ma ciò potrebbe creare più problemi nel tirare tutte le dipendenze, ma forse i problemi di installazione sono spariti.
Anthon,

Risposte:


29

È possibile impostare la password di root di MySQL nel file bootstrap aggiungendo i comandi debconf-set-selections prima di eseguire l'installazione 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

Presumo che questo funzioni su qualsiasi sistema basato su Debian. Lo uso tutti i giorni, la scatola è costruita in modo completamente automatico.


1
Eccezionale! Non conoscevo questo comando
AlvaroAV,

1
Non debconf-set-selectionsesistevo. Questo ha funzionato perfettamente. Grazie!
Sam,

3

Potresti voler esaminare Puppet : è eccellente per l'installazione e la configurazione automatica del software. C'è anche un modulo MySQL , ma non l'ho provato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.