SSH 및 PHP의 ssh2를 사용하여 원격 MySQL 데이터베이스에 연결하려는 시도 라이브러리를 사용하면 제공된 코드에서 오류가 발생합니다. "mysqli_connect()에서는 매개변수 6이 문자열이고 리소스가 제공되어야 합니다." 이 문제는 문자열로 예상되는 매개변수(터널 리소스)가 대신 리소스로 제공될 때 발생합니다.
이 문제를 극복하려면 , MySQL 데이터베이스 서버에 연결하기 위해 보안 SSH 터널을 설정할 수 있습니다. 이 터널은 클라이언트와 데이터베이스 간의 암호화된 채널 역할을 하며 보안 SSH 연결을 통해 모든 통신을 라우팅합니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!