2010-04-13 7 views
2

저는 수년 동안 MySQL을 사용해 왔지만이 초보자 문제를 처음으로 실행 한 것은 처음입니다. 고객의 요구로 인해 MySQL을 실행하지 않는 IIS 서버에서 웹 사이트 파일 (PHP)을 호스팅해야합니다 (대신 MSSQL을 실행 중입니다). 그러나, 나는 외부 호스트 (Rackspace 클라우드)에있는 MySQL 데이터베이스를 사용하여 사이트를 개발했습니다. 분명히 MySQL이 localhost에서 실행되지 않기 때문에 my mysql_connect 함수가 폭격을합니다.MySQL을 실행하지 않는 웹 서버에서 외부 MySQL DB에 연결

질문 : localhost가 MySQL을 실행하지 않는 경우 외부 MySQL 데이터베이스를 공격 할 수 있습니까?

신참 질문에 사과와 사전에 많은 감사드립니다.

* 명확한 것은 원격 MySQL 서버에 연결하는 방법을 알고 있지만 내 IIS 웹 서버가 문제가되는 MySQL (서버도 클라이언트도 아님) 형식을 실행하지 않는다는 것입니다. 다른 말로하면, phpinfo()는 MySQL에 관해 아무것도 반환하지 않습니다. *

답변

3

예, Apache + PHP와 동일한 컴퓨터에없는 MySQL 데이터베이스를 사용할 수 있습니다.

기본적으로 네트워크 연결 (TCP 기반)을 통해 PHP에서 MySQL로 연결됩니다. 어떤 의미 :

  • MySQL을 청취하고, MySQL은 그
  • 을 수행하는 구성을 의미 네트워크 인터페이스
    • 에 연결을 허용하도록 구성 그리고 당신의 MySQL 사용자에게 필요한 권한을 부여해야합니다, 그래서 그는 원격 서버에서 연결할 수 있습니다.
  • 그리고 PHP는 MySQL을 호스팅하는 서버에 연결할 수 있어야합니다.

참고하지만, 멀리 공연에 대한 좋은하지 않을 수의 서버에서 MySQL을 habing 것을 ...

각 SQL 쿼리는 네트워크를 통해 이동해야하며, 시간이 좀 걸릴 수 있습니다
0

phpinfo가 MySQL에 관해 아무것도 반환하지 않으면 PHP 용 MySQL 플러그인을 설치해야합니다. 가장 쉬운 방법은 PHP를 최신 버전으로 업그레이드하는 것입니다. 그렇지 않으면 필요한 .DLL 파일이 있습니다.

http://www.php.net/manual/en/mysql.installation.php

0

MySQL 서버는 PHP 자체와 관련이 없습니다. PHP에서 "mysql 지원"은 MySQL 클라이언트 인터페이스를 구현하는 컴파일 된 (또는 모듈이로드 된) 것을 의미합니다. Windows의 경우 'mysql.dll'이되고 Unix-ish 시스템의 경우 'mysql.so'가됩니다. 일단 이들이로드되면, 다양한 MySQL 인터페이스 (mysql_xxx(), mysqli_xxx(), PDO, MDB2 등)는 적절한 연결 문자열을 가지고 있다면 어느 MySQL 서버 에나 액세스 할 수 있습니다.