Instalar mysql-server en un script de shell de arranque vagabundo (¿cómo omitir la configuración?


16

Intenté instalar mysql-server en mi máquina virtual Ubuntu 12.04 LTS de Vagrant. Cuando lo hice, la configuración se inicia automáticamente. Puedo ver esto en la salida de Vagrant:

Si bien no es obligatorio, se recomienda que establezca una contraseña ││ para el usuario "raíz" administrativo de MySQL. Si este campo se deja en blanco, la contraseña no se cambiará. Nueva contraseña para Usuario "root" de MySQL

Después de eso, el texto de salida se vuelve loco, ± ├⎺ ⎼␊⎻┌▒␌␊ ┌␋␉⎽─┌␋├␊3-0 3.7.9-2┤␉┤┼├┤1 (┤⎽␋┼± ...pero es bastante largo y lleno de colores verde y rojo, por lo que creo que el resto de la instalación se está completando.

Pero puedo confirmar la falta de instalación después de:

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

¿Cómo puedo enviar las señales correctas a través de un script de shell para configurar el servidor MYSQL? O si no puedo, ¿cómo puedo detener el inicio automático de la configuración o eliminar la configuración una vez que se inicia mientras todavía tengo el paquete instalado?


Si el resto de la instalación está completando , que no permitiría que instale de nuevo. ¿Has intentado configurar una contraseña antes de la instalación?
Anthon

@Anthon Lo siento, no creo haber explicado esto bien en mi publicación: puedo configurar manualmente todo esto, pero mi objetivo es automatizar la mayor cantidad posible de mi configuración. Y tengo muchos pasos después de esto que dependen de la instalación de mysql (por ejemplo, instalar rvm).
Sam

A menos que los problemas sean causados ​​por un sistema sucio (intente instalar en una configuración de máquina virtual limpia), esto suena como un problema con el paquete en sí. En tales casos, a veces he parcheado el archivo de instalación (no una reconstrucción completa, solo extraer / cambiar / armar) y lo he servido desde un repositorio local.
Anthon

@Anthon: / Esperaba encontrar una solución como a) Existe un paquete de servidor MYSQL que no inicia automáticamente el asistente de configuración ob) había una manera tímida de atrapar este tipo de lanzamientos ( apt-get install mysql-server | some_trap_cmd >> some.file). Parece que tal vez no existe tal cosa?
Sam

El problema es que apt-get ejecuta scripts dentro del archivo instalador, no los atrapará a menos que parchee los scripts. También puede echar un vistazo a 5.6 mysql e instalarlo desde el launchpad , pero eso podría crear más problemas para obtener todas las dependencias, pero tal vez los problemas de instalación hayan desaparecido.
Anthon

Respuestas:


29

Puede establecer la contraseña raíz de MySQL en su archivo bootstrap agregando los comandos debconf-set-selections antes de ejecutar su instalación 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

Supongo que esto funciona en cualquier sistema basado en Debian. Lo uso todos los días, la caja se construye de forma completamente automática.


1
¡Increíble! No conocía este comando
AlvaroAV

1
Yo no debconf-set-selectionsexistí. Esto funcionó perfectamente. ¡Gracias!
Sam

3

Es posible que desee ver en Puppet : es excelente para instalar y configurar software automáticamente. También hay un módulo MySQL , pero no lo he probado.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.