>  기사  >  데이터 베이스  >  SSH 채널을 통해 MySQL에 액세스하는 방법에 대한 자세한 설명

SSH 채널을 통해 MySQL에 액세스하는 방법에 대한 자세한 설명

藏色散人
藏色散人앞으로
2020-01-28 13:39:162340검색

SSH 채널을 통해 MySQL에 액세스하는 방법에 대한 자세한 설명

Mysql을 사용하려고 하면 다음과 같은 상황에 직면하게 되는 경우가 많습니다.

1. 중요하며 통신을 암호화하기를 바랍니다.

2. 포트 3306과 같은 일부 포트는 라우터에 의해 비활성화됩니다.

첫 번째 문제에 대한 보다 직접적인 해결책은 mysql 코드를 변경하거나 일부 인증서를 사용하는 것이지만 이 방법은 분명히 그리 간단하지 않습니다.

추천 관련 학습 비디오 튜토리얼: mysql 비디오 튜토리얼

여기서 SSH 채널을 사용하여 원격에 연결하는 또 다른 방법을 소개합니다. Mysql, 방법은 매우 간단합니다.

1. SSH 채널 설정

로컬에서 다음 명령을 입력하세요.

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 . Mysql에 연결

이제 로컬 데이터베이스에 액세스하는 것처럼 원격 데이터베이스에 로컬로 연결할 수 있습니다.

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.

또는 Mysql 쿼리 브라우저를 사용하여 클라이언트의 3307 포트에 액세스하세요.

마찬가지로 PHP를 사용하여 다음 항목에 액세스하세요.

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

위 내용은 SSH 채널을 통해 MySQL에 액세스하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제