2012-11-20 3 views
0
나는 데이터베이스 연결을 만들기 위해 PHP와 MySQL을 사용하고

사용하여 데이터베이스 서버에 연결하지 못할, 문제는 다음과 같습니다는 IP 주소

데이터베이스 원격 서버에 연결하려고 오전 내 로컬 컴퓨터에서 웹 응용 프로그램 프로젝트는 모든 일이 잘 동작입니다

mysql_connect("x.xx.xx.x","username","password") or die(mysql_error()); 

mysql 데이터베이스가있는 원격 서버에 웹 응용 프로그램을 배포하고 해당 웹 응용 프로그램을 사용하려고하면 데이터베이스 오류 연결이 발생하지 않습니다 !! 난에 대한 데이터베이스 연결을 변경하는 경우 : 대신 지금까지 일이 잘 작동을 IP 주소를 사용하는 로컬 호스트 (127.0.0.1)를 사용하여

mysql_connect("localhost","username","password") or die(mysql_error()); 

을, 내가 체크 /etc/my.conf 파일을 시도하고 = 192.168 바인드 주소를 추가합니다. 15.15 그리고 mysql 서버를 다시 시작하십시오 여전히 데이터베이스에 연결할 수 없습니다
어떤 아이디어 !!!

+0

192.168.15.15은 원격 서버 –

+3

그들은 [중단 과정]에로 * '기능을'mysql_로 사용하지 마십시오 (HTTP의 IP 주소입니다 .php.net/php.internals/53799). 대신 [MySQLi] (http://php.net/manual/en/book.mysqli.php) 또는 [PDO] (http://php.net/manual/en/book.pdo.php)를 사용하고 [be be 더 나은 PHP 개발자] (http://jason.pureconcepts.net/2012/08/better-php-developer/). –

답변

1

두 가지를 확인해야합니다. 먼저 포트 3306이 연결되어 있는지 확인하십시오. 둘째, 원격으로 연결하는 경우 와일드 카드 사용자를 만들어야합니다 (호스트는 백분율 기호 %입니다). mysql.user 테이블을 살펴보십시오. 연결하려는 사용자가 Host (localhost)이면 원격으로 연결할 수 없습니다. 내가 질문 만 데이터베이스에 제안

CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';

해당 사용자 권한을 부여 :

FLUSH PRIVILEGES; 
:

마지막으로
GRANT ALL PRIVILEGES ON your_database.* TO 'newuser'@'%'; 

, 권한을 다시로드

새 사용자를 만들려면
+0

내가 로컬 컴퓨터를 통해 원격 서버에 연결할 수있는 동일한 서버에있는 wep 응용 프로그램을 배포 한 후 (같은 서버에있는) 데이터베이스에 연결할 수없는 동안 나는 IP 주소를 사용할 때 (localhost) 모든 것은 잘 작동합니다. 그래, 같은 문제가 발생했다는 것을 말하면서 사용자를 생성하십시오! –

0

문제는 내가 SElinux를 활성화했기 때문에 commad와 nabled 아파치 네트워크 : // 뉴스 :

setsebool -P httpd_can_network_connect=1