2009-08-28 2 views
3

PHP가 mysql에서 데이터를 요청하는 방법을 아는 사람 있습니까?PHP가 동일한 서버의 MySQL과 어떻게 통신합니까?

PHP와 동일한 컴퓨터에 mysql이 있으면 포트 3306의 localhost에 대한 TCP 연결을 열지 않습니까? 아니면 데이터를 가져 오는 다른 방법이 있습니까?

linux와 windows에서 동일합니까?

감사합니다.

+2

경우 빠른 "유닉스 소켓을"사용하려고합니다! :) –

+3

와우 .. 정말 감정적 인 코멘트 주셔서 감사합니다! 유닉스에서 – AntonioCS

답변

0

PHP는 포트 3306에 대한 연결을 열어 데이터 통신을 허용하는 TCP를 통한 서버입니다. 따라서 mysql (i) _connect 등에서 연결할 포트를 지정할 수 있으며, 왜 mysql에 방화벽 규칙이 있어야 하는지를 지정할 수있다.

그것은 리눅스와 같은 윈도우에서 동일

그래서 그래, TCP :

편집이

: 개정, 리눅스에서 PHP가 tmp 디렉토리의 요구 /tmp/mysql.sock를 통해 MySQL의 연결 보인다 올바른 권한을 가지고 있습니다.

+0

는 TCP를 사용하지 않으려 고합니다! – drAlberT

+0

그것은 내 작업을 수행합니다 ... 항상 /tmp/mysql.sock을 찾지 못하는 것에 대해 불평하고 있습니다. 예, 서버 관리를했는데 작동하지 않습니다. – bear

+0

@ ct2k7 : MySQL 클라이언트가 MySQL 서버가 만든 곳과 다른 곳에서 소켓 파일을 찾고있는 것 같습니다. 이는 비정상적인 "연결 해제"가 아닙니다. my.cnf의 설정 대 소켓 파일 위치에 대한 php.ini의 아이디어를 확인하십시오. –

3

보통 PHP는 연결 문자열에서 IP 주소를 사용하지 않는 한 /tmp/mysql.sock에있는 로컬 파이프를 열어 서버의 로컬 버전에 연결합니다.

+0

Windows에서는 지원되지 않습니다! – bear

+0

예, IP 주소를 사용하지 않는 Windows에서는 예외입니다. (필자가 Windows에서 MySQL을 사용한 이후로 잠시 동안) – razzed

8

사용 가능한 경우 유닉스 소켓을 사용하고, 그렇지 않으면 localhost를 사용합니다. 연결 문자열에 localhost를를 지정하는 경우에도 것을

참고 그것은 자동적으로 발생 가능한

관련 문제