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.