2016-05-31 4 views
0

가 나는 데이터베이스를 만들기 위해 MyIP에/phpMyAdmin을 사용mysqli_connect() (/ 2002 HY000)는 원격 서버

$host = 'myIP:3306'; 
$user = 'root'; 
$pass = 'pass'; 

$conn = mysqli_connect("$host", "$user", "$pass"); 

//check connection 
if (mysqli_connect_errno()) 
{ 
    echo "Error: " . mysqli_connect_error(); 
} 

PHP 코드를 사용하여 원격 서버의 데이터베이스에 연결 (mysqli)를 시도하고 연결에 실패 mysql이 제대로 실행되고 있는지 확인하기 위해 퍼티를 사용했습니다. 또한 내 서버에서 mysql의 기본 포트 (3306)를 확인했습니다.

주어진 오류는 연결 실패/시간 초과/응답 없음으로 설명됩니다.

또한 mysqli 대신 PDO를 사용해 보았지만 같은 결과가 나왔습니다. 다른 모든 예제에서는 localhosts 및 그 게시물에 주어진 솔루션에 소켓 경로를 사용하여 연결하는 방법을 찾을 수 있습니다. (이는 원격으로 나와 솔루션이 아닌 것처럼 보입니다).

학교에서 제공하는 Linux 서버입니다. 아이디어가 있으십니까? 미리 감사드립니다.

host, username, password, dbname, port, socket 

호스트 및 포트는 별개 : mysqli_connect()와

+0

사이의 일부 방화벽과 같은 소리로 요청을 차단합니다. – arkascha

+0

Linux를 사용하는 경우 방화벽에 예외를 추가 할 수 있습니다. 우분투에서는 $ ufw allow 3306입니다. – Ben

+0

'telnet myIp 3306'을 시도하십시오. 연결에 실패하면 네트워크 문제가 있음을 알 수 있습니다. 시간 초과 = 방화벽이 패킷을 자동으로 삭제합니다. connection refused = 해당 ip : 포트에서 수신 대기하지 않거나 방화벽이 연결을 적극적으로 거부합니다. –

답변

0

, 당신은 6 개 매개 변수를 사용할 수 있습니다. 사용

시도 :

$conn = mysqli_connect("myIP", "$user", "$pass", "dbname", "3306"); 

또한, 기본 포트는 그래서 당신은 아마 그것을 제공 할 필요가 없습니다 (3306)이다.

+0

'$ user'와'$ pass'를 인용하면 쓸모가 없습니다. – Jocelyn

+0

@Jocelyn 맞습니다. 코드에서 복사했습니다. – wtm