Saltar al contenido

mysql cómo arreglar el acceso denegado para el usuario ‘root’ @ ‘localhost’

Solución:

Siga los pasos a continuación.

  1. Inicie la instancia del servidor MySQL o el demonio con el --skip-grant-tables opción (configuración de seguridad).

    $ mysqld --skip-grant-tables
    
  2. Ejecute estas declaraciones.

    $ mysql -u root mysql
    $mysql> UPDATE user SET Password=PASSWORD('my_password') where USER='root';
    $mysql> FLUSH PRIVILEGES;
    

Si se encuentra con el campo desconocido Error de contraseña anterior, use:

update user set authentication_string=password('my_password') where user="root";
  1. Finalmente, reinicie la instancia / demonio sin el --skip-grant-tables opción.

    $ /etc/init.d/mysql restart
    

Ahora debería poder conectarse con su nueva contraseña.

$ mysql -u root -p

Introducir la contraseña: my_password

Solución para el error “No se puede bloquear ibdata1” de MySQL

sudo mv /usr/local/mysql/data/ibdata1 /usr/local/mysql/data/ibdata1.bak
sudo mv /usr/local/mysql/data/ib_logfile0 /usr/local/mysql/data/ib_logfile0.bak
sudo mv /usr/local/mysql/data/ib_logfile1 /usr/local/mysql/data/ib_logfile1.bak
sudo cp -a /usr/local/mysql/data/ibdata1.bak /usr/local/mysql/data/ibdata1
sudo cp -a /usr/local/mysql/data/ib_logfile0.bak /usr/local/mysql/data/ib_logfile0
sudo cp -a /usr/local/mysql/data/ib_logfile1.bak /usr/local/mysql/data/ib_logfile1
sudo /etc/init.d/mysql restart

Ninguno de los anteriores me ayudó. Descubrí que necesitaba borrar el método del complemento. En 5.6, pude hacer:

sudo mysql -u root
use mysql;
[mysql] update user set plugin='' where User="root";
[mysql] flush privileges;

En 5.7, descubrí que necesitaba:

sudo mysql -u root
use mysql;
[mysql] update user set plugin='mysql_native_password' where User="root";
[mysql] flush privileges;

De acuerdo con los documentos, con el complemento configurado en una cadena vacía, debería haberse predeterminado efectivamente en mysql_native_password, pero puede confundirse con un hash de contraseña vacío. Para obtener más matices, puede leer la documentación aquí: https://dev.mysql.com/doc/refman/5.7/en/native-authentication-plugin.html

También asegúrese de que el registro necesario en la tabla user tiene vacio plugin campo (puede haber, por ejemplo, "unix_socket").

Desde la versión 5.5.7, mysql tiene varios complementos de autenticación compatibles con https://dev.mysql.com/doc/refman/5.6/en/authentication-plugins.html

Entonces, si no está vacío plugin campo, la contraseña se ignoraría y habría una advertencia en el registro de errores de mysql (para mí es /var/log/mysql/error.log):

[Warning] 'user' entry '[email protected]' has both a password and an authentication plugin specified. The password will be ignored.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *