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?

19voto

Hiren Parghi Punkte 1755

Bitte befolgen Sie die unten genannten Schritte, um den Remotezugriff für MySQL-Benutzer zu aktivieren.

(1) Öffnen Sie cmd.

(2) Navigieren Sie zum Pfad C:\Program Files\MySQL\MySQL Server 5.X\bin und führen Sie diesen Befehl aus.

mysql -u root -p

(3) Geben Sie das Root-Passwort ein.

(4) Führen Sie den folgenden Befehl aus, um die Berechtigung zu erteilen.

GRANT ALL PRIVILEGES ON *.* TO 'BENUTZERNAME'@'IP' IDENTIFIZIERT DURCH 'PASSWORT';

BENUTZERNAME: Benutzername, mit dem Sie sich mit dem MySQL-Server verbinden möchten.

IP: Öffentliche IP-Adresse, von der aus Sie den Zugriff auf den MySQL-Server zulassen möchten.

PASSWORT: Passwort des verwendeten Benutzernamens.

IP kann durch % ersetzt werden, um es Benutzern zu ermöglichen, sich von jeder IP-Adresse aus zu verbinden.

(5) Berechtigungen mit folgendem Befehl zurücksetzen und beenden.

FLUSH PRIVILEGES;

exit; or \q

Bildbeschreibung hier eingeben

12voto

Nam Sama Punkte 95

Schließen Sie den Kommentar unter dem Link /etc/mysql/mysql.conf.d/mysqld.cnf oder /etc/mysql/my.cnf:

bind-adresse = 127.0.0.1  =>>  #bind-adresse = 127.0.0.1

Ändern Sie den Hostnamen so, dass alle Maschinen darauf zugreifen können, führen Sie diesen SQL-Befehl lokal aus:

UPDATE mysql.user SET Host='%' WHERE Host='localhost' AND User='root';
FLUSH PRIVILEGES;

Dienst neu starten:

sudo service mysql restart

Port mysql öffnen:

sudo ufw allow 3306

10voto

Promise Preston Punkte 15324

Ich musste diese Herausforderung bei der Arbeit an einem Java-Projekt mit einem MySQL-Server als Datenbank bewältigen.

So habe ich es gemacht:

Bestätigen Sie zunächst, dass Ihre MySQL-Serverkonfiguration Remoteverbindungen zulässt. Verwenden Sie Ihren bevorzugten Texteditor, um die MySQL-Serverkonfigurationsdatei zu öffnen:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Scrollen Sie zu der bind-address-Zeile und stellen Sie sicher, dass sie entweder auskommentiert ist oder durch 0.0.0.0 (um alle Remoteverbindungen zuzulassen) oder durch IP-Adressen, von denen aus Sie Remoteverbindungen zulassen möchten, ersetzt wird.

Nachdem Sie die erforderlichen Änderungen vorgenommen haben, speichern Sie die Konfigurationsdatei und beenden Sie sie. Wenden Sie die vorgenommenen Änderungen auf die MySQL-Konfigurationsdatei an, indem Sie den MySQL-Dienst neu starten:

sudo systemctl restart mysql

Melden Sie sich als Nächstes in der MySQL-Serverkonsole auf dem Server an, auf dem er installiert wurde:

mysql -u root -p

Geben Sie Ihr MySQL-Benutzerpasswort ein

Überprüfen Sie die hosts, für die der Benutzer, dem Sie bereits Zugriff gewähren möchten, bereits Zugriff hat. In meinem Fall ist der Benutzer root:

SELECT host FROM mysql.user WHERE user = "root";

Dies ergab folgende Ausgabe:

+-----------+
| host      |
+-----------+
| localhost |
+-----------+

Daraufhin habe ich den folgenden Befehl ausgeführt, um dem Benutzer root den Remotezugriff auf die Datenbank mit dem Namen my_database zu gewähren:

USE my_database;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mein-passwort';

Hinweis: % gewährt einem Benutzer Remotezugriff von allen Hosts in einem Netzwerk. Sie können die IP-Adresse der einzelnen Hosts angeben, von denen aus Sie dem Benutzer Zugriff gewähren möchten, mit dem Befehl - GRANT ALL PRIVILEGES ON *.* TO 'root'@'Ip-Adresse' IDENTIFIED BY 'mein-passwort';

Danach habe ich die hosts überprüft, auf die der Benutzer nun Zugriff hat. In meinem Fall ist der Benutzer root:

SELECT host FROM mysql.user WHERE user = "root";

Dies ergab folgende Ausgabe:

+-----------+
| host      |
+-----------+
| %         |
| localhost |
+-----------+

Zuletzt können Sie versuchen, eine Verbindung zum MySQL-Server von einem anderen Server aus herzustellen, indem Sie den Befehl verwenden:

mysql -u benutzername -h mysql-server-ip-adresse -p

Wo u für Benutzer, h für mysql-server-ip-adresse und p für Passwort steht. In meinem Fall war es also:

mysql -u root -h 34.69.261.158 -p

Geben Sie Ihr MySQL-Benutzerpasswort ein

Je nach Ihrer MySQL-Serverversion sollten Sie diese Ausgabe erhalten:

Willkommen beim MySQL-Monitor. Befehle enden mit ; oder \g.
Ihre MySQL-Verbindungs-ID lautet 4
Serverversion: 5.7.31 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle und/oder seine Verbundenen. Alle Rechte vorbehalten.

Oracle ist eine eingetragene Marke von Oracle Corporation und/oder seinen
Verbundenen. Andere Namen können Marken ihrer jeweiligen
Inhaber sein.

Geben Sie 'help;' oder '\h' für Hilfe ein. Geben Sie '\c' ein, um die aktuelle Eingabe zu löschen.

mysql>

Ressourcen: Wie man Remoteverbindungen zu MySQL zulässt

Das ist alles.

Ich hoffe, das hilft

7voto

tadman Punkte 200181

Wenn Ihr MySQL-Serverprozess nur auf 127.0.0.1 oder ::1 hört, können Sie keine Verbindung aus der Ferne herstellen. Wenn Sie eine bind-address-Einstellung in /etc/my.cnf haben, könnte dies die Ursache des Problems sein.

Sie müssen auch Privilegien für einen nicht-localhost-Benutzer hinzufügen.

7voto

Timmmm Punkte 76756

Wenn Sie MySQL von brew installiert haben, hört es standardmäßig wirklich nur auf der lokalen Schnittstelle zu. Um das zu beheben, müssen Sie /usr/local/etc/my.cnf bearbeiten und die bind-address von 127.0.0.1 auf * ändern.

Dann führen Sie brew services restart mysql aus.

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