Instalando o mysql-server no script vagrant de bootstrap (como pular a instalação?)

16

Eu tentei instalar o mysql-server na minha máquina virtual Vagrant Ubuntu 12.04 LTS. Quando fiz isso, a instalação é iniciada automaticamente. Eu posso ver isso na saída do Vagrant:

Embora não seja obrigatório, é altamente recomendável que você defina uma senha ││ para o usuário "raiz" administrativo do MySQL.││││ Se esse campo for deixado em branco, a senha não será alterada.││││ Nova senha para o Usuário "root" do MySQL

Depois disso, o texto de saída fica confuso - ± ├⎺ ⎼␊⎻┌▒␌␊ ┌␋␉⎽─┌␋├␊3-0 3.7.9-2┤␉┤┼├┤1 (┤⎽␋┼± ...- mas é bastante longo e cheio de cores verde e vermelho, então acredito que o restante da instalação esteja sendo concluído.

Mas posso confirmar a falta de instalação depois:

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

Como posso enviar os sinais corretos através de um script de shell para configurar o servidor MYSQL? Ou, se não posso, como posso interromper o início automático da configuração ou interromper a instalação, uma vez iniciada, enquanto o pacote ainda está instalado?

Sam
fonte
Se o restante da instalação estiver concluído , não será possível instalar novamente. Você já tentou configurar uma senha antes da instalação?
Anthon
@ Anthon Desculpe, eu não acho que expliquei isso bem no meu post: eu posso configurar manualmente tudo isso, mas meu objetivo é automatizar o máximo possível da minha configuração. E tenho muitos passos depois disso que dependem da instalação do mysql (instalação do rvm, por exemplo).
Sam
A menos que os problemas sejam causados ​​por um sistema impuro (tente instalar em uma instalação limpa da máquina virtual), isso soa como um problema no próprio pacote. Nesses casos, às vezes corrigi o arquivo de instalação (não uma reconstrução completa, apenas extraia / altere / compilou) e o servi de um repositório local.
Anthon
@Anthon: / Eu esperava encontrar uma solução como a) Existe um pacote de servidor MYSQL que não inicia automaticamente o assistente de configuração ou b) havia uma maneira básica de interceptar esses tipos de lançamentos ( apt-get install mysql-server | some_trap_cmd >> some.file). Parece que talvez isso não exista?
29414 Sam
O problema é que o apt-get executa scripts dentro do arquivo do instalador, você não vai pegar uma armadilha neles, a menos que faça o patch dos scripts. Você também pode dar uma olhada no mysql 5.6 e instalá-lo a partir da barra de ativação , mas isso pode criar mais problemas para todas as dependências, mas talvez os problemas de instalação tenham desaparecido.
Anthon

Respostas:

29

Você pode definir a senha raiz do MySQL no seu arquivo de inicialização adicionando comandos debconf-set-selections antes de executar sua instalação do 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

Eu presumo que isso funcione em qualquer sistema baseado no Debian. Eu uso todos os dias, caixa é construída de forma totalmente automática.

CCoffee
fonte
11
Impressionante! Eu não sabia que esse comando
AlvaroAV
11
Eu não debconf-set-selectionsexistia. Isso funcionou perfeitamente. Obrigado!
Sam
3

Você pode procurar no Puppet - é excelente para instalar e configurar o software automaticamente. Há também um módulo MySQL , mas eu não tentei.

l0b0
fonte