Showing posts with label installation. Show all posts
Showing posts with label installation. Show all posts

Thursday, October 18, 2012

Como hacer una reinstalación fresca de MySQL en RedHat6.

Tan reciente como hoy por razones ajenas a mi voluntad tuve que volver a reinstalar MySQL en uno de mis servidores. Y luego de 3 horas de buscar aquí y allá finalmente tengo MySQL corriendo nuevamente. 

**PRECAUCION**
En mi caso yo estaba en un ambiente de pruebas y no me importaba la data en las bases de datos. Si tiene data importante y esta en un ambiente de producción le recomiendo NO seguir esta guía y y que busque otra manera de reestrablecer su MySQL. Queda advertido.


1. Nos logueamos como root, bajamos el servicio de MySQL y desinstalamos todo lo que tenga q ver con el.


# service mysqld stop
# yum remove mysql*         

2. Borramos el archivo /var/lib/mysql (directorio default de la instalación) y /etc/my.cnf. 


# rm -rf /var/lib/mysql  
# rm /etc/my.cnf

Vamos al home folder de root y con el comando ls -a buscamos entre los hidden files alguno que se llame .my.conf o .mysql_history y lo borramos. 


# ls -a
.                .bash_profile  install.log         .tcshrc
..               .bashrc        install.log.syslog  .viminfo
anaconda-ks.cfg  .cshrc         .mysql_history      .Xauthority
.bash_history    .dbus          .pki                xorg.conf.new
.bash_logout     .gconf         .ssh
# rm .mysql_history
3. Ya hemos desinstalado MySQL efectivamente, ahora tenemos que instalarlo denuevo. 

# yum groupinstall mysql  
Ya MySQL debe haberse instalado en su default folder '/var/lib/mysql'. 

4. Para  asegurarnos que el folder de MySQL tenga los permisos correctos ejecutamos este comando.

# chown -R mysql:mysql /var/lib/mysql/*  
5. Tenemos que crear el archivo de configuracion My.cnf de MySQL en /etc/. Puede utilizar su editor favorito.

# vim /etc/my.cnf 

[client]
port=3306
socket=/var/lib/mysql/mysql.sock

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
port=3306
Guarde el archivo.

6. Comienze el servicio con el comando service mysqld start.


Posibles Situaciones

Basado en lo que me paso a mi el servicio de MySQL no me subio por varios errores. Puede encontrar descripción detallada de cualquier error con que se tope en un archivo llamado  $HOSTNAME.err dentro de /var/lib/mysql/

1.El servicio de MySQL subió pero no me pertmitía logearme como root.

2.En $HOSTNAME.err me salía - Error: Can't find file: './mysql/users.frm' (errno: 13)

Esto es un error de permisología. Asegurese que haya corrido este comando.
# chown -R mysql:mysql /var/lib/mysql/*  

3. El archivo de /var/lib/mysql esta vacío luego de reinstalarlo.

A mi entender esto es causado a algún archivo de MySQL que no se borró antes de reinstalar. En mi caso no sabía de la existencia del archivo .mysql_history en el home folder del usuario, en cuanto lo borre y reinstalé todo salió bien.

Ya saben, si en algo me necesitan arreglenselas como puedan!