: 이렇게 나오고 콘솔상에서 mysql 하고 엔터치면
: Error2002: can`t connect to local mysql server through
: socket`/var/lib/mysql/mysql.sock`(111)
: 이렇게 나옵니다. 답변을 기대하면서 읽어주셔서 감사합니다.
:
: --
: 희망...
이건 제가 보기엔 레드햇 7.0의 mysql패키지의 버그같습니다. 7.0베타때부
터 썼었는데 7.0베타때는 아예 뜨지도 않더니(스크립트에서 safe_mysqld로
데몬을 실행시키지 않아서 안뜨더군요.. 고쳐주면 뜸..) 7.0정식에서는 서버
는 제대로 작동하는데 사용하기엔 몇가지 문제가 생기더군요.
일단 소켓에러부분만 보겠습니다. 먼저 mysql서버가 작동되지 않으
면 /var/lib/mysql/mysql.sock파일이 만들어 지지 않으므로 위의 에러메시지
는 당연한 것입니다. -_-; 서버를 띄우세요. 보통 /etc/rc.d/init.d/mysqld
start 라고 하시면 뜰겁니다. :) 그래도 안되면 /usr/bin/mysql_install_db
라는 것 한번 실행시켜주시구요(이건 처음에 딱 한번만 해야합니다)
두번째로는 서버가 떴다고 할때 일반 사용자가 mysql.sock가 생성
된 /var/lib/mysql디렉토리에 접근을 못해서 에러가 나는 겁니다. 즉 chmod
755 /var/lib/mysql 하셔서 퍼미션 변경을 해 주시면 일반 사용자로도 에러
가 안날 것입니다(/var/lib/mysql 디렉토리의 소유주는 mysql.mysql입니다).
다음에 마지막으로 mysqld.pid 파일은 /var/run에 생겨야 되는데 이것역시
마찬가지로 mysql.pid파일을 작성하는 넘이 mysql.mysql이라서 /var/run에
mysqld.pid를 만들지 못하고 에러를 냅니다. 에러 메시지는 /var/lib/mysql
에 보면 '호스트이름.err'이라는 파일에 추가됩니다. 이 에러또한 잡으려
면 /var/run디렉토리의 퍼미션을 변경해 주거나 mysqld.pid 파일이 생기는
위치를 /tmp 정도로 잡으시면 됩니다.
각종 옵션이나 한글 소팅, 한글 에러 메시지 출력등에 관한 문제는 kldp에
서 관련 문서를 참조 하시면 됩니다. :)
저 같은 경우는 /etc/rc.d/init.d/mysqld 를 직접 수정해주고 다음
에 /etc/my.cnf라는 파일을 직접 작성하여 각종 설정을 넣어주었습니다. 물
론 my.cnf라는 파일의 설정이나 mysqld의 편집은 kldp나
http://www.mysql.com등에서 각종 문서를 참고하시고 간단한 응용력(옵션이
명령행에서 이렇게 사용되나 설정파일에는 어떻게 쓰면 이 옵션을 명령행에
안써도 되겠군.. 등등 -_-;)만 있으시면 무사 가동, 사용하실줄 믿습니다.
그리고 절대!! mysql.sock파일이 생성되는 위치를 위에 mysqld.pid처럼 /tmp
에 설정하지 마시고 무조건 /var/lib/mysql 밑에 생성되도록 하셔야합니다.
그렇지 않으면 php와 mysql을 연동할때 db커넥트 에러가 나옵니다. -_-;
설명이 장황해서 죄송합니다. 그럼 이만