¿Ya no puede iniciar sesión en MySQL como root?

8

Parece que ya no puedo iniciar sesión en MySQL (en realidad MariaDB) como usuario root en Ubuntu 15.04 (actualicé desde 14.04 a 14.10)

Ya intenté restablecer la contraseña.

Lo que funciona es sudo mysql, pero quiero iniciar sesión como root desde otro usuario usando mysql -uroot -p. Cuando creo un nuevo usuario con todos los derechos y contraseña, está funcionando.

¿Hubo algo cambiado?

Alex
fuente
ehm ... "pero quiero iniciar sesión como root" Para mí (!) nunca ha habido una razón para esto. Puede configurar el sistema para cualquier otro usuario que no sea root y hacer lo mismo desde ese usuario si lo desea ;-)
Rinzwind
@Rinzwind Hay muchas razones para iniciar sesión como root en una base de datos . Es la única forma de administrar usuarios, bases de datos, etc. No existe un mecanismo interno de sudo.
Oli
@oli usamos otro usuario para eso. es decir. el acceso con "root" solo es posible cuando se usa "sudo su" para restablecer mysql, pero ese no requiere ninguna autenticación.
Rinzwind

Respuestas:

6

Así que pasaste de la versión 5.5.44-1ubuntu0.14.04.1a 10.0.20-0ubuntu0.15.04.1. Suena más aterrador de lo que es, eso es lo que llamaron 5.6 por alguna razón .

Parece que las versiones más recientes de MariaDB han agregado un complemento a la tabla de usuarios para forzar la autenticación a través de una ruta fija. En este caso, el rootusuario de la base de datos es forzado a través del unix_socketcomplemento . Esto también parece ser conocido como auth_socketen algunos círculos.

De todos modos, este complemento restringe las cosas para que solo el rootusuario del sistema pueda iniciar sesión como la base de datos root, sin contraseña. Es una elección de seguridad que han hecho.

Puedes revertir esto poniendo blanco el campo del complemento para el rootusuario :

shell$ sudo mysql -u root

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

Una contraseña especificada debería funcionar después de esto. Sin embargo, no estoy seguro de lo aconsejable que es esto.

Oli
fuente
Después de esto, el inicio de sesión a través de sudo mysql -u rootya no es posible. Eso significa /etc/mysql/debian.confque también se debe adaptar.
Alex
44
No funciono para mi. Después de esto, ya ni siquiera podía iniciar sesión con 'sudo mysql -u root'.
MrSmith42