447 Stimmen

MySQL: Wie ermögliche ich eine Remote-Verbindung zu MySQL

Ich habe MySQL Community Edition 5.5 auf meinem lokalen Rechner installiert und möchte Remote-Verbindungen zulassen, damit ich mich von externen Quellen aus verbinden kann.

Wie kann ich das machen?

2voto

Nikola Petrovic Punkte 101

Die Aktivierung des Remote-Root-Zugriffs kann gefährlich sein. Es wäre besser, wenn Sie Benutzerkonten mit restriktiveren Berechtigungen einrichten würden. Die folgenden drei Schritte sollten dies ermöglichen.

  1. Stellen Sie sicher, dass die Zeile, die mit bind-address ... beginnt, in Ihrer my.ini- oder my.cnf-Datei zumindest auskommentiert ist. Wenn sie nicht existiert, fahren Sie fort. Sie finden diese Datei unter C:\ProgramData\MySQL\MySQL Server 8.0 auf Windows.

  2. Überprüfen Sie anschließend, ob das Benutzerkonto, mit dem Sie die Verbindung herstellen, keine localhost im Feld "Limit to Hosts Matching" hat. Auch wenn es nicht empfohlen wird, können Sie stattdessen % in dieses Feld für Testzwecke eingeben. Öffnen Sie eine lokale Verbindung zum Server mit MySQL Workbench, gehen Sie dann auf Server>Benutzerkonten und Privilegien im Menü und finden Sie das Benutzerkonto, mit dem Sie sich verbinden möchten.

Das Feld "Limit to Hosts Matching" ist das, was verhindert, dass Sie nicht lokal eine Verbindung herstellen können. Es beschränkt die akzeptierten Verbindungen auf ein Muster von IP-Adressen. Idealerweise sollten Sie auf den MySQL-Server von einer statischen IP-Adresse oder einem Subnetz aus zugreifen, damit Sie so restriktiv wie möglich sein können.

  1. Ihr Firewall sollte natürlich die Kommunikation der MySQL-Serveranwendung über den gewünschten Port zulassen. Die physische Netzwerkausrüstung zwischen Ihnen und Ihrem Server sollte die Kommunikation über den gewünschten Port zulassen (normalerweise Port 3306).

2voto

tdmartin102 Punkte 76

Und für OS X-Benutzer sei darauf hingewiesen, dass der bind-address-Parameter in der Regel in der launchd-Datei und nicht in der my.ini-Datei festgelegt ist. In meinem Fall habe ich --bind-address=127.0.0.1 aus /Library/LaunchDaemons/homebrew.mxcl.mariadb.plist entfernt.

1voto

Rubén Ruíz Punkte 367

Manchmal müssen Sie den Namen des PCs unter Windows verwenden.

erster Schritt) in der Konfigurationsdatei von MySQL einfügen:

mysqld.cnf SET bind-Adresse= 0.0.0.0

(um Verbindungen über TCP/IP zu ermöglichen)

zweiter Schritt) Benutzer in MySQL erstellen, Tabelle Benutzer, mit Name des PCs unter Windows Eigenschaften, KEINE IP

Bildbeschreibung hier eingeben

1voto

Duc Toan Pham Punkte 208
  • Überprüfen Sie, ob der Remote-Server die Berechtigung für den Wildcard-Zugriff auf Port 3306 gewährt:

sudo lsof -i -P -n | grep LISTEN

Es sollte NICHT so aussehen wie folgt:

mysqld 23083 mysql 21u IPv4 145900142 0t0 TCP 127.0.0.1:3306 (LISTEN)

In diesem Fall müssen wir /etc/mysql/mysql.conf.d/mysqld.cnf oder /etc/mysql/mariadb.conf.d/50-server.cnf aktualisieren mit:

bind-address = 127.0.0.1 --> 0.0.0.0

Und dann mysql neu starten mit "sudo service mysql restart"

Um die mySQL-Verbindung von einem Client aus zu testen:

nc -vz 3306

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X