PHP SSH MySQL 연결에서 \'mysqli_connect(): 매개변수 6이 문자열, 리소스 제공\' 오류가 될 것으로 예상되는 문제를 해결하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-21 22:27:31
원래의
957명이 탐색했습니다.

How to Resolve

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

SSH 및 PHP의 ssh2를 사용하여 원격 MySQL 데이터베이스에 연결하려는 시도 라이브러리를 사용하면 제공된 코드에서 오류가 발생합니다. "mysqli_connect()에서는 매개변수 6이 문자열이고 리소스가 제공되어야 합니다." 이 문제는 문자열로 예상되는 매개변수(터널 리소스)가 대신 리소스로 제공될 때 발생합니다.

SSH 터널 솔루션

이 문제를 극복하려면 , MySQL 데이터베이스 서버에 연결하기 위해 보안 SSH 터널을 설정할 수 있습니다. 이 터널은 클라이언트와 데이터베이스 간의 암호화된 채널 역할을 하며 보안 SSH 연결을 통해 모든 통신을 라우팅합니다.

(A) GUI 도구

  • Visual Studio 코드: 확장 기능으로 SSH 터널링을 지원합니다.
  • TablePlus: 내장된 SSH 터널링 기능을 제공합니다.
  • PuTTY: SSH에 대한 로컬 포트 ​​전달 설정을 허용합니다.

(B) 명령줄

1단계: 설정 '-L' 스위치를 사용하는 SSH 터널.

ssh -fNg -L 3307:10.3.1.55:3306 [email protected]
로그인 후 복사

이 예에서 로컬 포트 ​​3307의 트래픽은 10.3.1.55:3306의 원격 데이터베이스 서버로 전달됩니다.

2단계: 로컬 포트를 사용하여 데이터베이스에 연결합니다.

mysql -h 127.0.0.1 -P 3307 -u dbuser -p passphrase
로그인 후 복사

이제 PHP 애플리케이션은 SSH 전달 연결을 사용하여 데이터베이스에 연결할 수 있습니다.

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

SSH 터널을 설정하면 원격 MySQL 데이터베이스에 대한 연결이 매우 안전해집니다. 암호화된 SSH 채널을 통해 데이터를 교환하므로 무단 접근을 방지합니다.

위 내용은 PHP SSH MySQL 연결에서 \'mysqli_connect(): 매개변수 6이 문자열, 리소스 제공\' 오류가 될 것으로 예상되는 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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