Wie man eine Fernverbindung zu mysql zulässt

Ich habe MySQL Community Edition 5.5 auf meinem lokalen Rechner installiert und möchte Remote-Verbindungen zulassen, damit ich eine Verbindung von einer externen Quelle herstellen kann.

Wie kann ich das tun?

Lösung

Das ist bei MySQL standardmäßig erlaubt.

Was standardmäßig deaktiviert ist, ist der root-Fernzugriff. Wenn Sie diesen aktivieren möchten, führen Sie diesen SQL-Befehl lokal aus:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
 FLUSH PRIVILEGES;

Suchen Sie dann die folgende Zeile und kommentieren Sie sie aus in Ihrer my.cnf-Datei, die auf Unix/OSX-Systemen normalerweise unter /etc/mysql/my.cnf zu finden ist. In manchen Fällen befindet sich die Datei in /etc/mysql/mysql.conf.d/mysqld.cnf).

Wenn es sich um ein Windows-System handelt, finden Sie die Datei im MySQL-Installationsverzeichnis, in der Regel etwa unter C:\Programme\MySQL\MySQL Server 5.5\ und der Dateiname lautet my.ini.

Zeile ändern

 bind-address = 127.0.0.1

in

 #bind-address = 127.0.0.1

Starten Sie den MySQL-Server neu (Unix/OSX, und Windows), damit die Änderungen wirksam werden.

Kommentare (27)

In meinem Fall habe ich versucht, eine Verbindung zu einem entfernten mysql-Server auf Cent OS herzustellen. Nach dem Durchlaufen einer Menge von Lösungen (Gewährung aller Privilegien, Entfernen von IP-Bindungen, Aktivieren von Netzwerken) Problem war immer noch nicht immer gelöst.

Wie sich herausstellte, stieß ich bei der Suche nach verschiedenen Lösungen auf iptables, wodurch mir klar wurde, dass der mysql-Port 3306 keine Verbindungen akzeptierte.

Hier ist ein kleiner Hinweis, wie ich dieses Problem überprüft und gelöst habe.

  • Prüfen, ob der Port Verbindungen annimmt:
telnet (mysql server ip) [portNo]
  • Hinzufügen einer ip-Tabellenregel, um Verbindungen über den Port zuzulassen:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
  • Ich würde dies nicht für eine Produktionsumgebung empfehlen, aber wenn Ihre iptables nicht richtig konfiguriert sind, könnte das Hinzufügen der Regeln das Problem nicht lösen. In diesem Fall sollte folgendes getan werden:
service iptables stop

Hoffentlich hilft das.

Kommentare (0)

Wenn Ihr MySQL-Serverprozess nur auf 127.0.0.1 oder ::1 lauscht, können Sie sich nicht aus der Ferne verbinden. Wenn Sie eine "bind-address"-Einstellung in "/etc/my.cnf" haben, könnte dies die Ursache des Problems sein.

Sie müssen auch die Berechtigungen für einen Nicht-localhost-Benutzer hinzufügen.

Kommentare (2)