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.
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.
Una vez que tenga la configuración correcta, pruebe la conexión. Debería tener éxito y estará listo para comenzar.