> 백엔드 개발 > PHP 튜토리얼 > PHP에서 SSH를 통해 MySQL에 연결할 때 \'mysqli_connect()에서는 매개변수 6이 문자열이고 리소스가 제공되어야 합니다\' 오류를 해결하는 방법은 무엇입니까?

PHP에서 SSH를 통해 MySQL에 연결할 때 \'mysqli_connect()에서는 매개변수 6이 문자열이고 리소스가 제공되어야 합니다\' 오류를 해결하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-21 22:32:02
원래의
492명이 탐색했습니다.

How to Resolve

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

문제:

SSH를 사용하여 데이터베이스에 연결하는 동안 오류가 발생했습니다. SSH2 라이브러리. 특히 오류는 "mysqli_connect()에서 매개변수 6이 문자열이고 리소스가 제공되어야 합니다."입니다.

문제 설명:

위의 오류 메시지는 잘못된 유형을 mysqli_connect 함수의 여섯 번째 매개변수.

해결책:

문제를 해결하려면 리소스 대신 문자열을 여섯 번째 매개변수로 전달하세요. 귀하의 경우 이 매개변수는 SSH 터널 소켓에 대한 경로가 될 것으로 예상됩니다.

SSH 터널 설정:

SSH를 통해 MySQL 서버에 연결하려면 다음을 설정해야 합니다. 다음 단계를 사용하여 SSH 터널을 만듭니다.

1. SSH 터널 명령:

ssh -fNg -L 3307:10.3.1.55:3306 [email protected] 
로그인 후 복사
  • '-f': 백그라운드에서 실행
  • '-N' : 원격 명령을 실행하지 마세요
  • '-L': 로컬 포트 ​​전달 활성화
  • '3307': 컴퓨터의 로컬 포트
  • '10.3.1.55': 원격 MySQL 서버 주소
  • '3306': 원격 MySQL 서버 포트
  • '[이메일 보호]': SSH 프록시 호스트 및 사용자 이름

2. MySQL 클라이언트 연결:

터널이 설정되면 로컬 MySQL 클라이언트를 사용하여 MySQL 서버에 연결할 수 있습니다:

mysql -h 127.0.0.1 -P 3307 -u dbuser -p passphrase
로그인 후 복사
  • '- h': 로컬 MySQL 서버 주소
  • '-P': 로컬 포트 ​​번호
  • '-u': MySQL 사용자 이름
  • '-p': MySQL 비밀번호

3. PHP 연결:

마지막으로 PHP 애플리케이션에서 MySQL 서버에 연결합니다.

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

보안 참고 사항:

향상된 보안을 위해 MySQL 서버에 직접 연결하는 대신 배스천 호스트(Jumpbox)를 SSH 프록시로 사용하세요.

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

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