He estado golpeando mi cabeza contra este error hoy en OSX Yosemite con MySQL 5.7 actualizado recientemente con Homebrew. Siguiendo las sugerencias sobre StackOverflow y en otros lugares, busqué los my.cnf
archivos que especificaban bind-address=0.0.0.0
. Incluso eliminé y reinstalé MySQL siguiendo estas instrucciones y luego reinstalé usando brew install mysql
. Todavía no se permiten conexiones remotas.
No fue hasta que corrí ps -ax | grep mysql
y noté que la dirección de enlace se pasaba en el comando de inicio (anulando así los my.cnf
archivos) que cavé un poco más y descubrí que Homebrew vincula MySQL a 127.0.0.1 por defecto .
Editar ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
para cambiar --bind-address=127.0.0.1
para --bind-address=0.0.0.0
resolver mi problema (este último debe cambiarse a una dirección IP específica si esto no es solo una máquina de desarrollo).
Siento que esta es una información vital que faltaba en la mayoría de los recursos que consulté, ¡así que espero que publicar esto aquí ayude a alguien más!
EDITAR: Como LeandroCR indicó en los comentarios, la ejecución brew services restart mysql
sobrescribirá el archivo plist en LaunchAgents con el predeterminado, lo que lleva a MySQL a rechazar misteriosamente las conexiones nuevamente. Entonces, un mejor consejo que el que escribí originalmente es el siguiente:
- Edite
/usr/local/Cellar/mysql/<yourversion>/homebrew.mxcl.mysql.plist
y reemplace --bind-address=127.0.0.1
con bind-address=*
o --bind-address=0.0.0.0
( consulte la documentación de MySQL en bind-address )
- Reinicie mysql usando
brew services restart mysql
Entonces MySQL debería continuar aceptando conexiones no locales a partir de entonces, hasta que lo reinstales, presumiblemente.
Editar (septiembre de 2019)
Timothy Zorn señala que este problema ya no se produce para MySQL 8.x instalado y ejecutado a través de Homebrew, por lo que mi respuesta anterior, escrita en 2016, solo puede ser relevante para 5.x.
ssh
está abierto en una pestaña, pero por lo demás no. Creo que el problema es que el proceso del servidor de la base de datos está en pausa o no se ejecuta cuando no estoy conectado al servidor remoto.