Je me suis cogné la tête contre cette erreur aujourd'hui sur OSX Yosemite avec MySQL 5.7 récemment mis à jour avec Homebrew. Suite aux suggestions sur StackOverflow et ailleurs, j'ai cherché des my.cnffichiers tous spécifiés bind-address=0.0.0.0. J'ai même supprimé et réinstallé MySQL en suivant ces instructions , puis réinstallé à l'aide de brew install mysql. Toujours aucune connexion à distance autorisée.
Ce n'est que lorsque j'ai couru ps -ax | grep mysqlet remarqué que l'adresse de liaison était passée dans la commande de lancement (remplaçant ainsi tous les my.cnffichiers) que j'ai creusé un peu plus et découvert que Homebrew lie MySQL à 127.0.0.1 par défaut .
Modification ~/Library/LaunchAgents/homebrew.mxcl.mysql.plistde changer --bind-address=127.0.0.1pour --bind-address=0.0.0.0résoudre mon problème (ce dernier devrait être remplacé par une adresse IP spécifique si ce n'est pas seulement une machine de développement).
Je pense que c'est une information vitale qui manquait dans la plupart des ressources que j'ai consultées, alors j'espère que publier ceci ici aidera quelqu'un d'autre!
EDIT: Comme LeandroCR l'a indiqué dans les commentaires, l'exécution brew services restart mysqlécrasera le fichier plist dans LaunchAgents avec celui par défaut, ce qui conduira MySQL à refuser mystérieusement à nouveau les connexions. Donc, un meilleur conseil que ce que j'ai écrit à l'origine est le suivant:
- Editez 
/usr/local/Cellar/mysql/<yourversion>/homebrew.mxcl.mysql.plistet remplacez --bind-address=127.0.0.1par bind-address=*ou --bind-address=0.0.0.0( voir la documentation MySQL sur bind-address ) 
- Redémarrez mysql en utilisant 
brew services restart mysql 
Ensuite, MySQL devrait continuer à accepter les connexions non locales à partir de là - jusqu'à ce que vous le réinstalliez, probablement.
Edit (septembre 2019) 
Timothy Zorn souligne que ce problème ne se produit plus pour MySQL 8.x installé et exécuté via Homebrew, donc ma réponse ci-dessus, écrite en 2016, peut ne concerner que 5.x.
               
              
sshest ouvert dans un onglet, mais sinon non. Je pense que le problème est que le processus du serveur de base de données est en pause ou ne fonctionne pas lorsque je ne suis pas connecté au serveur distant.