2012-01-16 3 views
0

서버 B에서 서버 A의 MYSQL 데이터베이스에 연결하려고합니다. 우리가 작업하고있는 호스팅 회사는 서버 A와 서버 B를 모두 소유하고 있습니다. 이것은 외부 DB 연결에서의 첫 번째 시도입니다. 내가 코드는 내가 외부 MySQL 데이터베이스에 연결에 관해서 봤 대부분의 다른 코드처럼 보이는 서버 B에서 서버 A에서 MySQL 데이터베이스에 연결을 시도하는 다음과 같은 PHP 코드를 작성했습니다php-sql 연결 실패를 서버 설정으로 좁히시겠습니까?

..

$IPAddress_O_fServer_A = 'XXX.XX.XX.XXX'; 
$Server_A_DB_Pass = 'P-WORD'; 
$Server_A_DB_User = 'U-NAME'; 
$con = mysql_connect($IPAddress_Of_Server_A, $Server_A_DB_User, $Server_A_DB_Pass); 

Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'XXX.XX.XX.XXX' (4) in /var/www/web12/web/dev/front-end.php on line 10 
Could not connect: Can't connect to MySQL server on XXX.XX.XX.XXX' (4) 

... 라인 (10)가 된 mysql_connect() 호출입니다 :이 코드는 서버 B에서 실행하는 경우

지금,이 오류가 발생합니다.

이 코드에 문제가있는 사람이 있습니까? 연결이 작동하지 않는 경우 서버 외부 연결 사용 권한 또는 다른 설정에 문제가 있어야한다고 말하는 것이 안전할까요?

감사합니다.

+0

1 http://dev.mysql.com/doc/refman/5.5/en/access-denied.html (2) http://www.cyberciti.biz/tips/how-do -i-enable-remote-access-to-mysql-database-server.html –

+0

사용자 U-NAME은 localhost에서 테스트 할 때 데이터베이스에 연결할 수 있습니까? – BartekR

+0

아마도 로컬 호스트 외부의 연결을 허용하지 않는 보안 서버입니다 ... –

답변

0

먼저 this을보고 시스템이 원격 액세스를 허용하도록 구성되어 있는지 확인하십시오.

두 번째로 사용자 이름 "U-NAME"은 실제로 "U-NAME @ localhost"가되며 권한 설정이됩니다. 예를 들어, 다음 GRANT 문을 고려하십시오.

GRANT SELECT * 
    ON foo.bar 
    TO 'U-NAME'@'localhost' 

"U-NAME"사용자 이름은 데이터베이스 foo, 테이블 막대에서 항목을 선택할 수있는 권한이 있지만 독점적으로 로컬 호스트 액세스입니다. 원격을 허용하려면 다음과 같이 권한을 부여해야합니다.

GRANT SELECT * 
    ON foo.bar 
    TO 'U-NAME'@'xx.xx.xx.xx'