Esta sección fue evaluado por nuestros expertos para que tengas la garantía de la veracidad de esta crónica.
Solución:
Es probable que el problema se deba a que la autenticación de socket está habilitada para el usuario raíz 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 permite 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 inmediato con el servidor MySQL, al menos para mí. Intenté usar “Local Socket/Pipe” para conectarme de varias maneras diferentes, 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 lo siguiente:
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 (antigua predeterminada). 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 de blog de Miguel Nieto por esta solución.
MySQL 5.7 y versiones posteriores no admiten la conexión como “raíz” en mysql-workbench
por lo que debe crear un usuario normal y conectarse a través de eso.
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 puede tener dos años, pero mi trabajo con mysql-workbench esta noche parece haberme dado la respuesta.
El usuario raíz ahora utiliza la autenticación auth_socket de forma predeterminada. La única forma en que la raíz puede obtener acceso es iniciando sesión como raíz.
Esto lo descubrí corriendo mysql -u root
tanto como usuario root como usuario estándar.
No funcionaría con el 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 la raíz. Así que entré en la CLI del usuario raíz y escribí ‘mysql-workbench’.
Luego tuve que ingresar a la configuración para el usuario raíz 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 la raíz o sudo y ejecutar el siguiente comando.
Después de tener la configuración correcta, pruebe la conexión. Debería tener éxito y ya está listo para comenzar.
Te mostramos las reseñas y valoraciones de los lectores
Finalizando este artículo puedes encontrar las observaciones de otros gestores de proyectos, tú de igual forma puedes dejar el tuyo si lo deseas.