Heim >Datenbank >MySQL-Tutorial >Ausführliche Erklärung, wie man über den SSH-Kanal auf MySQL zugreift

Ausführliche Erklärung, wie man über den SSH-Kanal auf MySQL zugreift

藏色散人
藏色散人nach vorne
2020-01-28 13:39:162383Durchsuche

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen