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.cnfarchivos 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 mysqly noté que la dirección de enlace se pasaba en el comando de inicio (anulando así los my.cnfarchivos) 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.plistpara cambiar --bind-address=127.0.0.1para --bind-address=0.0.0.0resolver 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 mysqlsobrescribirá 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.plisty reemplace --bind-address=127.0.0.1con 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.
sshestá 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.