PHP 기능을 사용하여 SSH를 통해 원격 Linux 시스템에 호스팅된 MySQL 데이터베이스에 연결을 설정하는 것은 어려울 수 있습니다. 제공된 코드를 사용할 때 "mysqli_connect()는 매개변수 6이 문자열이고 리소스가 제공되어야 합니다"라는 오류가 발생할 수 있습니다.
코드는 mysqli_connect() 함수를 사용하여 다음을 시도합니다. SSH 터널을 통해 데이터베이스에 연결합니다. 그러나 mysqli_connect() 함수는 문자열을 여섯 번째 매개변수(터널을 나타냄)로 예상하는 반면 ssh2_tunnel() 함수는 리소스를 반환합니다.
해결하려면 이 문제에서는 MySQL 데이터베이스 서버에 대한 SSH 터널을 설정하십시오. 한 가지 효과적인 방법은 보안 강화를 위해 Jumpbox 프록시를 사용하는 것입니다. 이 접근 방식에는 SSH 클라이언트를 사용하여 로컬 포트 전달 터널을 생성하고 로컬 시스템과 데이터베이스 서버 사이에 보안 채널을 효과적으로 생성하는 작업이 포함됩니다.
사용 명령줄 도구(SSH 터널 설정):
ssh -fNg -L 3307:10.3.1.55:3306 [email protected]
데이터베이스에 연결:
$mysqli = mysqli_connect("127.0.0.1:3307", "DB_USERNAME", "DB_PASSWORD", "dbname");
추가 고려 사항:
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3