> 백엔드 개발 > PHP 튜토리얼 > PHP에서 SSH를 통해 MySQL 서버에 연결하는 방법: 문제 해결 및 모범 사례

PHP에서 SSH를 통해 MySQL 서버에 연결하는 방법: 문제 해결 및 모범 사례

Mary-Kate Olsen
풀어 주다: 2024-10-21 22:30:30
원래의
739명이 탐색했습니다.

How to Connect to a MySQL Server Over SSH in PHP: Troubleshooting and Best Practices

PHP에서 SSH를 통해 MySQL 서버에 연결

개요

SSH를 통해 원격 MySQL 서버에 연결하려면 로컬 간에 보안 터널을 설정해야 합니다. 머신과 MySQL 데이터베이스 서버. 이 가이드에서는 SSH 터널을 설정하고 PHP를 사용하여 데이터베이스에 연결하는 단계를 간략하게 설명합니다.

오류 해결

"mysqli_connect()에서는 매개변수 6이 문자열, 리소스가 제공되어야 합니다." 오류가 발생합니다. mysqli_connect()의 여섯 번째 매개변수가 MySQL 터널을 나타내는 문자열이 아닐 때 발생합니다. 이 문제를 해결하려면 아래와 같이 여섯 번째 매개변수를 ssh2_tunnel 함수의 출력으로 변경하십시오.

<code class="php">$connection = ssh2_connect('SERVER IP', 22);

ssh2_auth_password($connection, 'username', 'password');

$tunnel = ssh2_tunnel($connection, 'DESTINATION IP', 3307);

$db = mysqli_connect('127.0.0.1', 'DB_USERNAME', 'DB_PASSWORD', 
                         'dbname', 3307, stream_get_contents($tunnel))
    or die ('Fail: '.mysql_error());</code>
로그인 후 복사

보안 포트 전달

MySQL 서버 연결에 권장되는 솔루션 SSH는 SSH 터널을 설정하는 것입니다. 터널 설정을 위한 두 가지 옵션은 다음과 같습니다.

GUI 도구

내장 SSH 터널링 지원을 제공하는 Visual Studio Code 또는 TablePlus와 같은 GUI MySQL 클라이언트를 사용합니다.

명령 라인

다음 명령을 사용하여 로컬 포트 ​​전달을 설정합니다.

<code class="bash">ssh -fNg -L 3307:10.3.1.55:3306 [email&#160;protected] </code>
로그인 후 복사

터널이 설정되면 PHP 스크립트의 로컬 포트(3307)를 통해 MySQL 서버에 연결합니다.

<code class="php"><?php
      $smysql = mysql_connect( &quot;127.0.0.1:3307&quot;, &quot;dbuser&quot;, &quot;passphrase&quot; );
      mysql_select_db( &quot;db&quot;, $smysql ); 
?></code>
로그인 후 복사

보안 고려 사항

데이터베이스 서버가 인터넷에 직접 노출되는 것을 방지하려면 Jumpbox 서버를 통해 터널을 설정하는 것이 중요합니다. 또한 보안 강화를 위해 비밀번호 인증 대신 SSH 키 인증을 사용하는 것을 고려해 보세요.

위 내용은 PHP에서 SSH를 통해 MySQL 서버에 연결하는 방법: 문제 해결 및 모범 사례의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿