>데이터 베이스 >MySQL 튜토리얼 >PHP의 SSH 터널을 통해 원격 MySQL 서버에 안전하게 연결하는 방법은 무엇입니까?

PHP의 SSH 터널을 통해 원격 MySQL 서버에 안전하게 연결하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-29 03:33:14295검색

How to Securely Connect to a Remote MySQL Server via SSH Tunnel in PHP?

PHP를 사용하여 SSH를 통해 MySQL 서버에 안전하게 연결

SSH를 통해 원격 MySQL 서버에 연결하면 연결을 암호화하여 추가 보안이 제공됩니다. PHP에서는 mysqli_connect() 함수를 사용하여 SSH 터널링된 MySQL 서버에 연결할 수 있습니다. 그러나 ssh2_tunnel()을 사용하여 연결을 설정하려고 하면 개발자는 "mysqli_connect()에서 매개변수 6을 문자열로 예상하고 리소스가 제공되어야 합니다."라는 오류가 자주 발생합니다.

SSH 터널 구성

이 문제를 해결하기 위해 권장되는 접근 방식은 SSH 터널을 설정하는 것입니다. 명령줄 도구를 사용하여 SSH 터널을 생성하려면 다음 단계를 따르세요.

  1. SSH 클라이언트 열기: 선호하는 SSH 클라이언트(예: PuTTY)를 열고 원격 연결을 설정하세요. Linux 시스템.
  2. SSH 터널 생성: 로컬 워크스테이션 포트에서 터널을 생성하려면 다음 명령을 입력합니다. (예: 3307)을 MySQL 서버의 원격 IP 주소 및 포트(예: 10.3.1.55:3306)로(예: 10.3.1.55:3306):
ssh -fNg -L 3307:10.3.1.55:3306 username@ssh-jumpbox.com
  1. SSH 서버 구성: 필요한 경우 다음을 편집하여 로컬 포트 ​​전달을 허용하도록 SSH 서버를 구성합니다. /etc/ssh/sshd_config 파일에 다음 줄을 추가합니다.
AllowTcpForwarding yes
  1. SSH 서버를 다시 시작합니다. 변경 사항을 적용하려면 SSH 서버를 다시 시작합니다.
sudo systemctl restart sshd

PHP 연결

SSH 터널이 설정되면 PHP를 사용하여 MySQL 서버에 연결할 수 있습니다.

$mysqli = new mysqli('127.0.0.1', 'DB_USERNAME', 'DB_PASSWORD', 'dbname', 3307);

if ($mysqli->connect_error) {
  die('Connect Error (' . $mysqli->connect_errno . ') '
      . $mysqli->connect_error);
}

이 코드는 127.0.0.1:3307에서 호스팅되는 MySQL 데이터베이스에 연결됩니다. , 지정된 데이터베이스 사용자 이름, 비밀번호, 데이터베이스 이름 및 SSH 터널용으로 구성된 포트 번호를 사용합니다.

위 내용은 PHP의 SSH 터널을 통해 원격 MySQL 서버에 안전하게 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.