Solucionar problema acceso root a MySQL

Publicado el 18/05/2020 en it • Etiquetado con mysql, linux

Tras instalar mysql-server en mi equipo principal, me he encontrado con el mismo problema que cuando lo instale en una Raspberry Pi hace unas semanas.

El problema era el acceso al cliente de MySQL como root tras ejecutar el comando mysql_secure_installation a pesar de haber introducido correctamente la contraseña.

Parece ser que el motivo de no poder acceder es que por defecto el plugin que utiliza por defecto MySQL es auth_socket cuando para poder acceder con la contraseña tendría que ser mysql_native_password.

Estos son los pasos a seguir para sustituir un plugin por otro.

Acceder con sudo al cliente de MySQL.

    sudo mysql -u root -p

Una vez dentro del mismo:

    mysql> USE mysql;
    mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
    mysql> UPDATE user SET authentication_string=PASSWORD('mi_password') where USER='root';
    mysql> FLUSH PRIVILEGES;
    mysql> exit;

A continuación reiniciar el servicio de MySQL.

    sudo service mysql stop
    sudo service mysql start

Tras esto ya se puede acceder directamente a MySQL con el comando habitual sin sudo.

    mysql -u root -p

Fuentes: