Heim >Datenbank >MySQL-Tutorial >Ausführliche Erklärung, wie man über den SSH-Kanal auf MySQL zugreift
Bei der Verwendung von MySQL werden Sie häufig auf die folgenden Situationen stoßen:
1. Die Informationen sind wichtig und Sie möchten, dass die Kommunikation verschlüsselt wird.
2. Einige Ports, z. B. Port 3306, sind vom Router deaktiviert.
Eine direktere Lösung für das erste Problem besteht darin, den MySQL-Code zu ändern oder einige Zertifikate zu verwenden, aber diese Methode ist offensichtlich nicht sehr einfach.
Empfohlene verwandte Lernvideo-Tutorials: MySQL-Video-Tutorial
Hier stellen wir eine andere Methode vor, nämlich die Verwendung des SSH-Kanals für die Verbindung mit Remote-MySQL. Die Methode ist recht einfach.
1. SSH-Kanal einrichten
Geben Sie einfach den folgenden Befehl lokal ein:
ssh -fNg -L 3307:127.0.0.1:3306 myuser@remotehost.com The command tells ssh to log in to remotehost.com as myuser, go into the background (-f) and not execute any remote command (-N), and set up port-forwarding (-L localport:localhost:remoteport ). In this case, we forward port 3307 on localhost to port 3306 on remotehost.com.
2. Verbinden Sie sich mit Mysql
Jetzt können Sie lokal eine Verbindung zur Remote-Datenbank herstellen, genau wie beim Zugriff auf die lokale Datenbank.
mysql -h 127.0.0.1 -P 3307 -u dbuser -p db The command tells the local MySQL client to connect to localhost port 3307 (which is forwarded via ssh to remotehost.com:3306). The exchange of data between client and server is now sent over the encrypted ssh connection.
Oder verwenden Sie Mysql Query Browser, um auf den 3307-Port des Clients zuzugreifen.
Verwenden Sie auf ähnliche Weise PHP, um auf Folgendes zuzugreifen:
<?php $smysql = mysql_connect( "127.0.0.1:3307", "dbuser", "PASS" ); mysql_select_db( "db", $smysql ); ?> Making It A Daemon A quick and dirty way to make sure the connection runs on startup and respawns on failure is to add it to /etc/inittab and have the init process (the, uh, kernel) keep it going. Add the following to /etc/inittab on each client: sm:345:respawn:/usr/bin/ssh -Ng -L 3307:127.0.0.1:3306 myuser@remotehost.com And that should be all you need to do. Send init the HUP signal ( kill -HUP 1 ) to make it reload the configuration. To turn it off, comment out the line and HUP init again.
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie man über den SSH-Kanal auf MySQL zugreift. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!