저도 같은 경험이 있습니다.혹시이게 도움이 될련지 모르겟습니다.
phpleader.co.kr 에서 퍼왔습니다.
[에러 내용]
Warning: Can't connect to local MySQL server through
socket '/home/mysql/mysql.sock' (111)
in /home/dspaper/public_html/board/index.html on line 15
[문제의 원인]
실제로 mysqld 에 의한 socket 파일은 /tmp/mysql.sock 에 존재하는데
PHP 나
mysql 과 같은 프로그램들은 그 파일을 /var/lib/mysql/mysql.sock 에
서 찾는다.
그러니 당연히 mysqld 와 의사소통이 될리가 없고, 접속이 안된다고 에러
가 납니다.
[해결방법]
1. ln -sf /tmp/mysql.sock /var/lib/mysql/mysql.sock
이 해결법은 가장 간단하게 할 수 있지만 문제점은 리부팅 되고 나면
그때마다 다시 이 soft link 를 걸어 줘야 합니다. 왜냐하면 이 파일은 일
반적인
파일이 아닌 unix socket 파일이기 때문입니다.
2. msyqld 기동시에 --socket=/var/lib/mysql/mysql.sock 라는 옵션
을 추가
이 방법은 강제적으로 소켓 파일을 원하는 디렉토리에 만들도록 해 줍니
다.
그러므로 mysqld 의 소켓파일이 저 디렉토리에 생성만 된다면 문제는 해결
이 되겠지요.
3. PHP 연동시 client 측에서 socket 파일의 위치를 지정해 주는 방법
$conn = mysql_connect
("localhost:/tmp/mysql.sock","db_user","db_passwd");
이 방법은 클라이언트 측에서 서버측의 소켓파일의 위치를 명시해 주는 방법
입니다.
(얼마나 이런 문제가 많았으면 저런 방법까지 생겼을꼬....)
: Warning: MySQL Connection Failed: Can't connect to local
MySQL server through socket '/tmp/mysql.sock' (2)
in /data/www/board/list.php on line 28
:
: mysql 접속이 위 연결계정으로 정상적으로 되거든요.
:
: 저의 판단으로는 connect문의 오류는 없는걸로 판단됩니다만,
:
: 브라우저에서는 위와같은
: 에러와 함께 sql접속이 안됩니다.
:
: 고수님들의 지도 편달(너무 진부적인가?) 부탁드립니다.
:
: --
: php 고수가 되는 그날까지..--이 곳에 서명을 적어주십시오.
털키