sql >> Base de Datos >  >> RDS >> MariaDB

Solución:acceso denegado para el usuario 'root' @ 'localhost' en MariaDB

Si recibe un error que le dice que el acceso está denegado para la root usuario en MariaDB, este artículo puede ayudar.

El Error

Estaba intentando importar la información de la zona horaria de mi sistema a MariaDB con el siguiente comando:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

Pero resultó en el siguiente error:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

La causa

Después de investigar esto, me di cuenta de que root el usuario aún no había configurado su contraseña.

Cuando ejecuté la siguiente consulta:

SELECT user, password 
FROM user
WHERE User = 'root';

Obtuve el siguiente resultado:

+-------------+----------+
| User        | Password |
+-------------+----------+
| root        | invalid  |
+-------------+----------+

La documentación de MariaDB establece lo siguiente:

Aún así, es posible que algunos usuarios deseen iniciar sesión como raíz de MariaDB sin usar sudo. Por lo tanto, el antiguo método de autenticación, la contraseña de MariaDB convencional, todavía está disponible. De forma predeterminada, está deshabilitado ("inválido" no es un hash de contraseña válido), pero se puede configurar la contraseña con SET PASSWORD habitual. declaración. Y aún conserva el acceso sin contraseña a través de sudo.

Esa parece ser nuestra respuesta.

La solución

Según el párrafo anterior, necesitaba establecer la contraseña para root usuario:

SET PASSWORD FOR 'root'@localhost = PASSWORD("myReallyStrongPwd");

Ejecutar eso (con una contraseña diferente) funcionó.

Entonces, si obtiene el error anterior, quizás esto ayude.