Normalerweise ist der Fernzugriff auf den MySQL-Datenbankserver aus Sicherheitsgründen deaktiviert. Manchmal müssen Sie jedoch den Fernzugriff auf den MySQL-Datenbankserver von zu Hause oder einem Webserver aus bereitstellen. Sie können diesen Schritten folgen, um es zu aktivieren.
Schritt 1:Melden Sie sich mit SSH an (wenn sich der Server außerhalb Ihrer Umgebung oder Ihres Intranets befindet)
Melden Sie sich zuerst über ssh beim Remote-MySQL-Datenbankserver von Windows mit PuTTy oder von Linux mit SSH
anSchritt 2:Bearbeiten Sie die my.cnf-Datei
Sobald die Verbindung hergestellt ist, müssen Sie die MySQL-Server-Konfigurationsdatei my.cnf mit einem Texteditor wie vi:
bearbeiten- Unter Debian Linux Datei befindet sich unter /etc/mysql/my.cnf Standort.
- Unter Red Hat Linux/Fedora/Centos Linux Datei befindet sich unter /etc/my.cnf Standort.
Um /etc/my.cnf zu bearbeiten, führen Sie Folgendes aus:
# vi /etc/my.cnf
- Unter Windows , meine.ini-Datei befindet sich unter C:\Program Files\MySQL\MySQL Server X.Y (X.Y ist die Versionsnummer des MySQL-Servers)
Öffnen Sie für Windows die Datei my.ini im Editor
Schritt 3:Suchen Sie nach dem Öffnen der Datei die folgende Zeile
[mysqld]
Stellen Sie sicher, dass das Zeilensprungnetzwerk auskommentiert ist (oder entfernen Sie die Zeile) und fügen Sie die folgende Zeile hinzu
bind-address=YOUR-SERVER-IP
Wenn Ihre MySQL-Server-IP beispielsweise 173.234.21.12 lautet, sieht der gesamte Block wie folgt aus:
[mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp language = /usr/share/mysql/English bind-address = 173.234.21.12 # skip-networking ....
Wo,
- bind-Adresse :IP-Adresse, an die gebunden werden soll.
- Netzwerk überspringen :Überhaupt nicht auf TCP/IP-Verbindungen lauschen. Alle Interaktionen mit mysqld müssen über Unix-Sockets erfolgen. Diese Option wird dringend für Systeme empfohlen, in denen nur lokale Anforderungen zulässig sind. Da Sie eine Fernverbindung zulassen müssen, sollte diese Zeile aus my.cnf entfernt oder auskommentiert werden.
Schritt 4:Speichern und schließen Sie die Datei
Geben Sie unter Debian/Ubuntu Linux den folgenden Befehl ein, um den MySQL-Server neu zu starten:
# /etc/init.d/mysql restart
Geben Sie unter RHEL / CentOS / Fedora / Scientific Linux den folgenden Befehl ein, um den MySQL-Server neu zu starten:
# /etc/init.d/mysqld restart
Öffnen Sie unter Windows die Eingabeaufforderung als Administrator und geben Sie
einnet stop MySQL net start MySQL
Schritt 5:Zugriff auf Remote-IP-Adresse gewähren
Zugriff auf eine neue Datenbank gewähren
Wenn Sie eine neue Datenbank namens foo für die Benutzerleiste und die Remote-IP 162.72.20.23 hinzufügen möchten, müssen Sie die folgenden Befehle an der mysql-Eingabeaufforderung eingeben:
mysql> CREATE DATABASE foo; mysql> GRANT ALL ON foo.* TO bar@'162.72.20.23' IDENTIFIED BY 'PASSWORD';
Zugriff auf eine vorhandene Datenbank gewähren
Nehmen wir an, dass Sie immer eine Verbindung von der Remote-IP namens 162.72.20.23 zur Datenbank namens webdb für den Benutzer webadmin herstellen. Um Zugriff auf diese IP-Adresse für eine vorhandene Datenbank zu gewähren, geben Sie den folgenden Befehl an der mysql-Eingabeaufforderung ein:
mysql> update db set Host='162.72.20.23' where Db='webdb'; mysql> update user set Host='162.72.20.23' where user='webadmin';
Schritt 6:Von MySQL abmelden
Geben Sie den Exit-Befehl ein, um sich von mysql abzumelden:
mysql> exit
Schritt 7:Port 3306 öffnen
Eine Beispiel-iptables-Regel zum Öffnen der Linux-iptables-Firewall
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
ODER erlauben Sie nur eine Remote-Verbindung von Ihrem Webserver unter 162.72.20.23:
/sbin/iptables -A INPUT -i eth0 -s 162.72.20.23 -p tcp --destination-port 3306 -j ACCEPT
ODER erlauben Sie nur eine Fernverbindung von Ihrem LAN-Subnetz 192.168.1.0/24:
/sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 3306 -j ACCEPT
Speichern Sie abschließend alle Regeln (RHEL / CentOS-spezifischer Befehl):
# service iptables save
Gehen Sie unter Windows zu Systemsteuerung> Windows-Firewall> Regel für eingehenden Datenverkehr für Port 3306 hinzufügen
Schritt 8:Testen Sie den Fernzugriff auf die MySQL-Datenbank
Geben Sie auf Ihrem Remote-System oder Ihrem Desktop den folgenden Befehl ein:
$ mysql -u webadmin –h 173.234.21.12 –p
Führen Sie unter Windows das MySQL-Befehlszeilenprogramm aus und melden Sie sich als Administrator an, indem Sie den folgenden Befehl aus dem MySQL-Stammordner eingeben (z. B. Programme\MySQL\MySQL Server 5.5\bin):
C:\Program Files\MySQL\MySQL Server 5.5\bin>mysql -u webadmin –h 173.234.21.12 –p
Woher,