Mysql. Olvidé la contraseña de root

Olvidé contraseña de root

Este tutorial está hecho sobre una máquina centos 6.4. Es posible que en otras distribuciones, las rutas absolutas no sean las mismas.

He olvidado la contraseña del usuario root en mysql.

Paramos el servicio de mysql, y arrancamos de nuevo con el flag “skip-grant-tables”:
service mysqld stop
/usr/bin/mysqld_safe --skip-grant-tables --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql

 

En la consola de mysql, abrimos sin contraseña, y actualizamos el valor de la contraseña de la tabla users:
mysql -u root mysql

Problema socket mysql

Tras un reinicio, al aplicar actualizaciones, no se puede encender la base de datos:

[root@server~]# service mysqld start
Another MySQL daemon already running with the same unix socket.
Iniciando mysqld: [FALLÃ]

Para buscar el nombre del socket

cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

Siguiendo este tutorial, salvaguardamos el socket de mysql, y hacemos un apagado ordenado con shutdown -r.


[root@server~]# ls -la /var/lib/mysql/mysql.sock
srwxrwxrwx. 1 mysql mysql 0 ene 15 13:16 /var/lib/mysql/mysql.sock
[root@server~]# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.old
[root@server~]# shutdown -r now

También hay que verificar que se pueda crear el archivo .pid

[root@server~]# tail /var/log/mysqld.log | grep -i error
140115 13:18:49 [ERROR] /usr/libexec/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2)
140115 13:18:49 [ERROR] Can't start server: can't create PID file: No such file or directory
[root@server~]# mkdir /var/run/mysqld/
[root@server~]# chown mysql:mysql /var/run/mysqld
[root@server~]# service mysqld restart