PHP에서 MySQL과 socket 연결이 안될때 해결방법

PHP에서 mysql_connect()를 이용해 MySQL과 연결하려 했더니 헐 접속이 않되네요. 애러 문구는 아래와 같이 나오네요.

Warning: mysql_connect() [function.mysql-connect]: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) …

물론 MySQL이 죽어 있으면 당연히 안되겠지만 멀쩡하게 살아 있고 터미널에서 command line에서 접속도 잘 되는데 PHP만 안되네요.

그래서 찾아 봤더니 문제는 mysql.sock 파일을 엉뚱한것을 사용해서랍니다. 설치할때의 상태와 실행시의 상태가 달라져서 MySQL이 실행할때 mysql.sock 파일을 다른 곳에 있는것으로 사용해서라는군요. 뭐 암튼, PHP가 엉뚱한 파일을 찾아서 mysql.sock 파일이 없다는 뭐 그런 오류인데요. 해결방법은 아래와 같지 3가지 있다고 합니다.

“근원e”님 감사합니다. 덕분에 쉽게 해결했습니다.

1. php 소스 수정

mysql_connect('localhost:/tmp/mysql.sock', 'username', 'password');

위와 같이 host 값에 소켓 파일 위치를 명시하는 방법입니다. 서버 환경 파일을 직접 수정하지 못하는 경우 사용하시면 됩니다.

2. php.ini 수정

[MySQL]
mysql.default_socket = /tmp/mysql.sock

위와 같이 php.ini파일에 mysql.default_socket 설정 항목이 있습니다. 그곳에 정의해 주시면 됩니다. MySQLi 도 사용하신다면 mysqli에도 default_socket에 써주시면 됩니다.

3. my.ini 수정

[mysqld]
socket = /tmp/mysql.sock

이건 mysql 환경 설정을 바꾸는 건데요. 실제로 mysql 환경을 바꿔야 할일이 있을지는 모르겠네요.

[참고자료]

  1. PHP mysql_conenct() Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’, http://www.lovelgw.com/Blog/230, 근원e – No place to go~
Advertisements

Published by: benant

WEB PROGRAMMER. PHP, ASP, XML, Javascript, VBScript, PL/SQL, MySQL, Oracle. scrollads.co.kr 새로운 모바일 광고 서비스. trenue.com 시스탬 트래이딩 서비스. blogman.co.kr 블로그 운영 관리 서비스. creget.co.kr 해외 상품 구매대행. 핫딜 정보 제공 서비스. fgshop.co.kr - 독립형 쇼핑몰 솔루션.

Categories Web태그, , 댓글 한 개

One thought on “PHP에서 MySQL과 socket 연결이 안될때 해결방법”

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중