mysql -u root no funciona pero sudo mysql -u root funciona, ¿por qué?

9

Recientemente seguí algunos tutoriales e instalé mysql usando sudo apt-get install mysql-server-5.7

Puedo conectarme a la base de datos usando contraseña ejecutando el siguiente comando:

sudo mysql -u root -p

Intento conectarme ejecutando:

mysql -u root -p

pero me sale el error:

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

¿Por qué? ¿Cómo puedo arreglar esto?

usuario1379280
fuente
2
Querido votante, ¿también puede dejar una razón para votar a favor, al menos una explicación de por qué esta es una pregunta estúpida?
user1379280
Esto podría estar relacionado. Mira algunas de las respuestas: askubuntu.com/questions/766334/…
Terrance
¿Estableció una contraseña de root para mysql durante la instalación?
Steeldriver
@steeldriver: sí, lo hice
user1379280

Respuestas:

23
  1. Acceso con sudo: sudo mysql -u root -p
  2. Eliminar el usuario root: drop user 'root'@'localhost';
  3. Crea el usuario root nuevamente: create user 'root'@'%' identified by 'your_password';
  4. Dar permisos: grant all privileges on *.* to 'root'@'%' with grant option;
  5. Actualizar tablas de permisos: flush privileges;
  6. Salga de MYSQL e intente volver a conectarse sin sudo.

Fuente: no se puede iniciar sesión como usuario root de mysql desde una cuenta de usuario normal en ubuntu 16.04

thiagoBarbosa48
fuente
¡Gracias! ¡Estos pasos también me funcionaron y sudoahora no necesito usar mysql! Parece que reemplazar el host localhostcon %resuelto el problema para mí.
Vikram Hosakote
pero aún no puede acceder de forma remota
Ciasto piekarz
¡No funcionó para mí, ahora no puedo entrar con o sin sudo!
David Powell