
Ayer me quedé entrampado un buen rato en unos trabajos de investigación por un tema que no podrÃa explicar facilmente, simplemente al desinstalar un MySQL ya no podÃa reinstalarlo, simplemente aparecÃa un mensaje de error (con número 100, 2 y 1 en diversos momentos) y nada no se podÃa.
E: mysql-server-5.1: el subproceso instalado el script pre-removal devolvió el código de salida de error 100
Reordenando las cosas que hice esto fue lo que sucedió:
Por unas pruebas de MySQL y Tungsten Replicator estaba que instalaba y desinstalaba los software a cada rato, como esto resultaba ya medio aburrido en algún momento de alocado hice esto:
sudo rm -rf /etc/mysql
sudo rm -rf /var/lib/mysql
sudo apt-get purge mysql-server -y
sudo apt-get install mysql-server -y
sudo dpkg-reconfigure mysql-server-5.1
El problema aquà es que me borré los archivos antes de bajar el servicio, especialmente los de configuración, cuando apt quizó desinstalar el software no encontró los files y me soltó un error que simplemente obvié, luego al instalar entró en otro error porque no podÃa levantar el servicio.
Porbé todo lo posible, desinstalé todo lo que tenÃa referencias a MySQL (y claro que no es poco), volvà a instalar, nada, desinstalé corrà un
apt-get -f install para que reparé cosas, nada, desinstalé paquete por paquete, volvà a bajar, probé reconfigurarlos, nada.
Al final me dà cuenta en los logs de que simplemente no se podÃa instalar porque el desinstalado marcaba que no se habÃan borrado los files (que yo habÃa borrado a mano) y lo que hice fue entrar en
/etc y cree a mano el directorio
mysql, el desinstalado funcionó pero el instalador no ejecutaba bien, simplemente instalaba, incluso me pedÃa configurar passwords pero el servicio no levantaba.
Viendo los logs vi que el mysql estaba haciendo el intento de crear sus tablas iniciales pero era como que no podÃa encontrar el socket para conectarse, me di cuenta que en
/etc/mysql no estaba el archivo
my.cnf y que por más que reinstalaba el software no creaba el bendito
my.cnf, se me ocurrió crearlo asÃ:
touch /etc/mysql/my.cnf y el instalador corrió, pero, el motor de la base de datos seguÃa sin levantar.
El tema es que
my.cnf estaba totalmente vacÃo, no habÃa nada dentro del archivo, reinstalar no hacÃa efecto, el archivo no se tocaba, entonces leyendo me di con una sorpresa,
my.cnf no es un archivo que se instale con el servidor de mysql, es un archivo que se genera al instalar
mysql-commons, entonces procedà a borrar todo, mysql-server, clint y dependencias y el
mysql-common, me di cuenta que todo se habÃa eliminado (obviamente use
apt-get purge PAQUETES) y luego los reinstalé, al reinstalarse el
mysql-common se generó el
my.cnf con el contenido habitual y el servicio levantó ok.
¿Moraleja en toda la historia? Usar PostgreSQL es mejor

.... ya hablando en serio, cuando borren cosas de
/etc verifiquen siempre que paquete le instala los archivos que van a eliminar porque podrÃa cometer una burrada como la que yo hice y perder minutos valiosos de trabajo.