Ich habe heute unter OSX Yosemite mit MySQL 5.7, das kürzlich mit Homebrew aktualisiert wurde, gegen diesen Fehler gekämpft. Nach Vorschlägen zu StackOverflow und anderswo habe ich nach my.cnf
Dateien gesucht, die alle angegeben wurden bind-address=0.0.0.0
. Ich habe MySQL sogar gemäß diesen Anweisungen entfernt und neu installiert und dann mit neu installiert brew install mysql
. Noch keine Remoteverbindungen erlaubt.
Erst als ich lief ps -ax | grep mysql
und bemerkte, dass die Bindeadresse im Startbefehl übergeben wurde (wodurch alle my.cnf
Dateien überschrieben wurden ), grub ich weiter und stellte fest, dass Homebrew MySQL standardmäßig an 127.0.0.1 bindet .
Bearbeiten, ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
um Änderungen vorzunehmen, um mein Problem --bind-address=127.0.0.1
zu --bind-address=0.0.0.0
lösen (letztere sollten in eine bestimmte IP-Adresse geändert werden, wenn dies nicht nur eine Entwicklungsmaschine ist).
Ich bin der Meinung, dass dies eine wichtige Information ist, die in den meisten von mir konsultierten Ressourcen fehlte. Hoffentlich hilft das Posten hier jemand anderem!
BEARBEITEN : Wie LeandroCR in den Kommentaren angegeben hat, brew services restart mysql
überschreibt das Ausführen die plist-Datei in LaunchAgents mit der Standarddatei, was dazu führt, dass MySQL Verbindungen auf mysteriöse Weise wieder ablehnt. Ein besserer Rat als das, was ich ursprünglich geschrieben habe, ist der folgende:
- Bearbeiten
/usr/local/Cellar/mysql/<yourversion>/homebrew.mxcl.mysql.plist
und ersetzen --bind-address=127.0.0.1
mit bind-address=*
oder --bind-address=0.0.0.0
( siehe MySQL - Dokumentation auf bind-Adresse )
- Starten Sie MySQL mit neu
brew services restart mysql
Dann sollte MySQL von nun an weiterhin nicht lokale Verbindungen akzeptieren - bis Sie es vermutlich neu installieren.
Bearbeiten (Sep 2019)
Timothy Zorn weist darauf hin, dass dieses Problem bei MySQL 8.x, das über Homebrew installiert und ausgeführt wird, nicht mehr auftritt. Daher ist meine Antwort aus dem Jahr 2016 möglicherweise nur für 5.x relevant.
ssh
es auf einer Registerkarte geöffnet ist, ansonsten jedoch nicht. Ich denke, das Problem ist, dass der Datenbankserverprozess angehalten wird oder nicht ausgeführt wird, wenn ich nicht am Remoteserver angemeldet bin.