Error en la conexión de Sequel Pro y MySQL


94

Acabo de instalar mysql en mac desde Homebrew

brew install mysql

mysql -V

mysql  Ver 8.0.11 for osx10.13 on x86_64 (Homebrew)

desde la terminal funciona y puedo iniciar sesión en mysql pero desde Sequel Pro dice

ingrese la descripción de la imagen aquí

No se puede conectar al host 127.0.0.1 o se agotó el tiempo de espera de la solicitud.

Asegúrese de que la dirección sea correcta y que tenga los privilegios necesarios, o intente aumentar el tiempo de espera de la conexión (actualmente 10 segundos).

MySQL dijo: El complemento de autenticación 'caching_sha2_password' no se puede cargar: dlopen (/usr/local/lib/plugin/caching_sha2_password.so, 2): imagen no encontrada

no puedo entender lo que me estoy perdiendo

Respuestas:


182

Esto se debe a que Sequel Pro aún no está listo para un nuevo tipo de inicio de sesión de usuario, ya que el error indica: no hay controlador. Solución rápida para instalaciones que no sean caseras:

Apple Logo > System Preferences > MySQL > Initialize Database, luego escriba su nueva contraseña y seleccione 'Usar contraseña heredada'

Después de reiniciar, debería poder conectarse. Hágalo solo en instalaciones nuevas, ya que de lo contrario podría perder sus tablas de base de datos.

mysql + homebrew

Básicamente, tendrá que realizar algunas acciones manualmente, sin embargo, los datos de su base de datos no se eliminarán como en la solución anterior

  • Vaya al archivo [my.cnf] [1] y en la sección [mysqld]agregue la línea:

    default-authentication-plugin=mysql_native_password

  • Inicie sesión en el servidor mysql desde la terminal: ejecute mysql -u root -p, luego dentro del shell ejecute este comando (reemplazando [contraseña] con su contraseña real):

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

  • salga del shell mysql con exity ejecute brew services restart mysql.

Deberia trabajar.


my.cnf

El archivo my.cnf se encuentra en /etc/my.cnf en Unix / Linux


14
No puedo encontrar MySQL en las preferencias del sistema
Hattori Hanzō

2
gracias por explicar, pero no puedo localizar el my.cnfarchivo en mi máquina (macOS High Sierra 10.13.5)
Hattori Hanzō

2
Si no existe tal archivo, tendrá que crear uno: por favor, eche un vistazo a este hilo: stackoverflow.com/questions/7973927/…
Maciej Kwas

14
Esto funcionó muy bien en un brew install mysqluso nuevo/usr/local/etc/my.cnf
mintwhip

5
No usé una contraseña, así que usé ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';- esto funcionó para mí
Vincent Tang

33

TL; DR: Sequel Pro está muerto desde 2016. No degrades tu base de datos debido a una herramienta. Continúe con una herramienta alternativa.

Actualización 2020: ¡Sequel Pro está oficialmente muerta pero extraoficialmente viva! Puede encontrar las compilaciones " nocturnas " que no tienen este problema (es decir, admiten la autenticación de Mysql 8) aquí: https://sequelpro.com/test-builds


Todas las otras soluciones aquí recomiendan cambiar la configuración de su base de datos (haciéndola menos segura, como lo anuncia MySQL) para la herramienta que está utilizando. Eso no es aceptable para mí.

Siempre he sido un gran admirador de Sequel Pro, incluso he donado. Pero, con toda mi pasión y amor, lamento que la herramienta no tenga ningún lanzamiento desde 2016 . ¡YOLO, y tengo que seguir adelante!

La alternativa que encontré (de https://stackoverflow.com/a/55235533/2321594 , gracias a @arcseldon) es DBeaver, que admite el nuevo método de autenticación de MySQL 8 (no heredado).

PD. El único truco en el lado de la herramienta, no en el lado de la base de datos, es que cuando está creando una conexión MySQL 8, es posible que deba ir a "Propiedades del controlador" (más adelante se puede encontrar en Editar conexión) y cambiar el valor de allowPublicKeyRetrievala true.

Necesitaba esto para conectarme a mi contenedor MySQL creado con Docker. Para que la IP de MySQL sea visible desde el exterior, para cualquier otra aplicación en su ecosistema (no solo esta herramienta), debe crear un nuevo usuario en MySQL, o pasar -e MYSQL_ROOT_HOST=%el tiempo de ejecución o como un ENV.


Creo que @Aidin me diste un voto negativo solo porque mi respuesta no resuelve el problema de OP. Es solo un desarrollo local y entornos locales, entonces, ¿cuál es el punto? ¿De verdad tengo que dejar el software con el que estoy familiarizado y con el que me gusta trabajar solo porque tú lo dices?
Maciej Kwas

5
Por favor, no lo tomes como algo personal @MaciejKwas. A pesar de dar más explicaciones aquí, que agradezco, sigo estando de pie con mi voto. Las tres razones principales son: 1) No se recomienda mantener una configuración diferente entre dev / prod en el desarrollo de software moderno. Es, de hecho, el factor X de 12factor.net/dev-prod-parity . 2) Las personas también pueden utilizar estas herramientas para comprobar la producción. Puede crear un ssh-tunnel / proxy y acceder a su base de datos prod a través de una herramienta GUI. En tales casos, degradar la autenticación de la base de datos no es una opción. 3) No adaptarme a los cambios y actualizaciones es algo que no valoro, personalmente.
Aidin

1
Vuelvo a un proyecto de MySQL que no he ejecutado localmente en un par de años porque ha sido sólido como una roca y estoy muy triste de descubrir que la secuela profesional está muerta :(
Catfish

También elija el controlador MySQL +8 en DBeaver, ya que hay varios controladores para elegir. En las propiedades del controlador, establezca allowPublicKeyRetrieval en verdadero y guarde.
Peheje

18
  1. Suponiendo que no tiene una configuración de mysql , repita lo siguiente para~/.my.conf
[mysqld]
default-authentication-plugin=mysql_native_password
  1. Inicie sesión en mysql conmysql -u root -p
  2. Establezca la contraseña de usuario root con ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[PASSWORD]';donde [PASSWORD]está la contraseña de su elección.
  3. Reinicie mysql con egbrew services restart mysql

7

Sequel Pro está oficialmente muerto y ya no es compatible con las funciones más nuevas de MySql. Sin embargo, la buena noticia es que fue reemplazada por Sequel Ace, que está disponible en GitHub y App Store . La aplicación es gratuita y parece un reemplazo oficial de Sequel Pro, ya que la publicación fue realizada por uno de los colaboradores de Sequel Pro .

PD. Decidí publicar esto como respuesta, ya que otros no han mencionado que ahora hay un reemplazo actualizado para Sequel Pro


Gracias por las noticias, muy apreciado.
Hattori Hanzō

¡Finalmente! He estado esperando por un tiempo.
Jonny

6

Si se conecta a MySQL a través de root@127.0.0.1, ¡asegúrese de restablecer su contraseña también!

ALTER USER 'root'@'127.0.0.1' IDENTIFICADO CON mysql_native_password POR '[contraseña]';


Estoy recibiendo:ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 50, found 49. Created with MySQL 80012, now running 80013. Please use mysql_upgrade to fix this error.
Chance Smith

intente esto en la terminal: mysql_upgrade --force -uroot -p
Xeno

mysql_upgrade ahora ha quedado obsoleto y no funcionará, use mysqld --upgrade = FORCE en su lugar.
ilovecookiez11

1

Si alguien enfrenta este problema y lo instala MySQL version >8mediante la .dmgdescarga desde el enlace oficial. En ese caso, utilice esta guía .


1
Usar una contraseña de estilo antiguo funcionó para mí. ¡Gracias!
Richard Witherspoon

1

Me está funcionando. si recibe este error:

No se puede conectar al host 127.0.0.1 o se agotó el tiempo de espera de la solicitud.

Asegúrese de que la dirección sea correcta y que tenga los privilegios necesarios, o intente aumentar el tiempo de espera de la conexión (actualmente 10 segundos).

MySQL dijo: El complemento de autenticación 'caching_sha2_password' no se puede cargar: dlopen (/usr/local/lib/plugin/caching_sha2_password.so, 2):

Por favor, prueba esta solución

ingrese la descripción de la imagen aquí


Trabajado como un encanto.
Jimmy Adaro
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.