Saltar al contenido

No se puede conectar a través de MySQL Workbench a localhost en Ubuntu 16.04 (root sin contraseña)

Solución:

Es probable que el problema se deba a que la autenticación de socket está habilitada para el usuario root de forma predeterminada cuando no se establece una contraseña, durante la actualización a 16.04. Esta importante advertencia está documentada en las notas de la versión 16.04:

El comportamiento de la contraseña cuando la contraseña raíz de MySQL está vacía ha cambiado. El empaquetado ahora habilita la autenticación de socket cuando la contraseña raíz de MySQL está vacía. Esto significa que un usuario no root no puede iniciar sesión como usuario root de MySQL con una contraseña vacía.

Por alguna razón, MySQL Workbench que vino con 16.04 no funciona de fábrica con el servidor MySQL, al menos para mí. Intenté usar “Local Socket / Pipe” para conectarme de diferentes maneras, pero fue en vano.

La solución es volver a la autenticación de contraseña nativa. Puede hacer esto iniciando sesión en MySQL usando la autenticación de socket haciendo:

sudo mysql -u root

Una vez que haya iniciado sesión:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

que volverá a la autenticación de contraseña nativa (predeterminada anterior). Si ha intentado algún otro método para solucionar el problema, querrá asegurarse de que el campo “complemento” en mysql.user esté configurado en “auth_token”, lo que puede requerir el uso de mysqld_safe para iniciar sesión en MySQL en caso de que He estado jugando con las cosas, como lo hice yo.

Crédito a la publicación del blog de Miguel Nieto por esta solución.

MySQL 5.7 y versiones posteriores no admiten la conexión como “root” en mysql-workbench por lo que debe crear un usuario normal y conectarse a través de él.

sudo mysql -u root -p

Cree un usuario llamado “admin” y utilícelo para conectarse mysql-workbench.

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;

Esta pregunta podría tener dos años, pero mi trabajo con mysql-workbench esta noche parece haberme dado la respuesta.

el usuario root ahora usa la autenticación auth_socket de forma predeterminada. La única forma en que root puede obtener acceso es iniciando sesión como root.

Descubrí esto corriendo mysql -u root tanto como usuario root como usuario estándar.

No funcionaría con un usuario estándar.

Entonces, mi siguiente pregunta fue: ¿con qué usuario se ejecuta mysql-workbench? Resulta que se ejecuta como usuario estándar de forma predeterminada. Para que se ejecute como usuario root, debe ejecutarse desde root. Así que entré en la CLI del usuario root y escribí ‘mysql-workbench’.

Luego tuve que ir a la configuración del usuario root como se muestra aquí. La ubicación del archivo es válida para una instalación de ubuntu 18.04.

Configuración de la conexión raíz mysql-workbench.

Si esa ubicación de socket no es válida, deberá ingresar a la CLI de mysql desde root o sudo y ejecutar el siguiente comando.

Comando de la CLI de MySQL para encontrar el socket.

Una vez que tenga la configuración correcta, pruebe la conexión. Debería tener éxito y estará listo para comenzar.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *