Maison  >  Article  >  base de données  >  Explication détaillée de la façon d'accéder à MySQL via le canal SSH

Explication détaillée de la façon d'accéder à MySQL via le canal SSH

藏色散人
藏色散人avant
2020-01-28 13:39:162340parcourir

Explication détaillée de la façon d'accéder à MySQL via le canal SSH

Souvent, lorsque vous utilisez Mysql, vous rencontrerez les situations suivantes :

1. Les informations sont importantes et vous souhaitez que la communication soit cryptée.

2. Certains ports, comme le port 3306, sont désactivés par le routeur.

Une solution plus directe au premier problème consiste à changer le code mysql, ou à utiliser certains certificats, mais cette méthode n'est évidemment pas très simple.

Tutoriels vidéo d'apprentissage associés recommandés : Tutoriel vidéo mysql

Ici, nous présenterons une autre méthode, qui consiste à utiliser le canal SSH pour se connecter à Mysql distant. simple.

1. Établissez un canal SSH

Tapez simplement la commande suivante localement :

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. >Maintenant, vous pouvez vous connecter localement à la base de données distante, tout comme accéder à la base de données locale.

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.

Ou utilisez Mysql Query Browser pour accéder au port 3307 du client.

De même, utilisez PHP pour accéder à :

<?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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer