2017-04-06 9 views
0

데이터베이스에 원격으로 액세스하려고합니다. 서버 자체에서 액세스 할 수 있지만 원격으로 액세스해야하며 내 컴퓨터에서 XAMPP를 사용하여 원격 액세스해야합니다.PHP를 사용하여 원격으로 MySQL 데이터베이스에 액세스

데이터베이스 사용자가 내 IP에서 데이터베이스에 액세스 할 수있는 가능성을 추가했습니다 (% 사용). 여기에 코드입니다 :

$servername = $websiteIP; //e.g. xx.xx.xxx.xxx, also tried website URL and URL to phpMyAdmin 
$username = 'username'; 
$password = 'password'; 
$dbname = 'dbname'; 
$port = '3306'; 
$conn = new mysqli($servername, $username, $password, $dbname); 
// also tried $conn = new mysqli($servername, $username, $password, $dbname, $port); 

하지만 난 항상이 오류를 얻을 : 나는 $ 서버 이름 = $ urlToMyPhpAdmin 사용하는 경우를 제외하고

Warning: mysqli::mysqli(): (HY000/2002): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. in ...

을;

Warning: mysqli::mysqli(): MySQL server has gone away in xxx on line 10. Warning: mysqli::mysqli(): Error while reading greeting packet. PID=102448 in xxx on line 10. Warning: mysqli::mysqli(): (HY000/2006): MySQL server has gone away in xxx on line 10

내가 무엇을 놓치고 : 은 그 때 나는이 오류가?

+0

는 인바운드 포트를 확인 않았다로 그에서 결과를 사용해보십시오? DB 서버 (iptable/Selinux)의 방화벽을 비활성화하여 한 번 확인하십시오. – webDev

+0

@webDev 죄송합니다. 인바운드 포트가 무엇인지 잘 모르겠습니다. 그리고 나는 방화벽을 사용하지 못하게 할 권한이 없다고 확신한다. – Andri

답변

0

데이터베이스가 웹 사이트와 동일한 서버에 있습니까? 웹 사이트 (또는 PHPMyAdmin)가 아닌 데이터베이스 호스트의 IP 또는 주소가 필요할 수 있습니다. 나는 phpMyAdmin을에 가서 this 대답에서 가져온 다음 쿼리를 실행합니다 :

select * from GLOBAL_variables where variable_name like 'hostname';

을하고 $servername

+0

SQL을 사용할 때 오류가 발생하지만 작동합니다. Variable_name = 'hostname'WHERE VARIABLES WHERE Variable_name = 'hostname' 동일합니까? 결과는 textstring ($ string)입니다. 다음 코드를 사용합니다 : echo gethostbyname ($ string) 그리고 그 결과 웹 사이트 IP와 동일한 IP가됩니다. – Andri

+1

괜찮아요. 그래서 그 IP를'$ servername'으로 사용하고 싶습니다. 나는 [this] (https://support.rackspace.com/how-to/mysql-connect-to-your-database-remotely/) 웹 사이트를보고 설정 한 사용자가 올바른지 확인해야합니다. 원격으로 접속할 수있는 권한을 가지며 아마도 mysql을 원격으로 실행하여 원격 DB에 접속하여 원격 접속을 허용 할 수있다. – dave

+0

나를 맞은 것으로 보인다. IP를 $ servername (localhost 아님)으로 사용하고 원격 서버에서 로컬로 연결하면 모든 것이 정상적으로 작동합니다. 하지만 XAMPP 서버로 동일한 코드를 옮기면 오류가 발생합니다. 그래서 원격 서버의 제어판에서 localhost에서 각 사용자의 IP로 호스트를 변경할 수 있지만 여전히 액세스 할 수 없다고 생각합니다. – Andri