He instalado mariadb y como usuario root de Linux, puedo ejecutar el comando mysql para acceder a la base de datos. Pero cuando intento iniciar sesión como usuario normal de Linux y ejecutar mysql -u root -p
, aparece el error:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'.
Probé varios métodos, como restablecer la contraseña para el usuario root de MySQL, pero fue inútil.
Cualquier ayuda será genial.
Respuesta1
Tuve el mismo problema, fue causado por un valor de "complemento" en la tabla "mysql.user".
¿Has probado con esta respuesta?https://askubuntu.com/a/636579/299538
Aquí hay una explicación para eso:https://superuser.com/a/1071043/592085
Respuesta2
En MariaDB no puedes iniciar sesión con un usuario normal, debes acceder a root o usar sudo
. Otra solución es agregar otro usuario root con todos los privilegios.
Conéctese con sudo a db:
sudo mysql -u root
Verifique su cuenta en la base de datos actual:
mysql> SELECT User,Host FROM mysql.user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | localhost |
Recrear usuario root
(use contraseña si es necesario):
mysql> CREATE USER 'root'@'%' IDENTIFIED BY '';
Dar permiso:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
Enjuagar:
mysql> FLUSH PRIVILEGES;
Mostrar usos de la base de datos:
SELECT User,Host FROM mysql.user;
+------+-----------+
| User | Host |
+------+-----------+
| root | % |
| root | localhost |
+------+-----------+
Salga y conéctese con el usuario normal:
mysql -u root