Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Aktivieren Sie den Fernzugriff auf die MySQL-Datenbank

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

an

Schritt 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

ein
net 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,