MySQL server through socket '/tmp/mysql.sock'라는 에러가 뜰경우
[root@www bin]# ./mysql
ERROR 2002: Can't connect to local MySQL server through
socket '/tmp/mysql.sock' (2)
[root@www bin]#
위 내용은 APM설치후 mysql실행하면, 저렇게 나오는데..
아무리 vi /tmp/mysql.sock 를해도, 안에 아무런 내용이없는데.
저럴때는 어떻게 해야하나요?
---------------------------------------------------------------------------------------
mysql 서버가 실행되어 있지 않아서입니다.
/tmp/mysql.sock 소켓파일은 mysql 실행하시면 생성됩니다...
우선 root 상태에서 아래 명령어를 실행하세요.
[root@www bin]#./safe_mysqld --user=root &
그 다음 ps aux 로 mysql 데몬 정상적으로 실행되었는지 확인하신 다음 접속해 보세요.
참고로 설치하신 mysql버전이 mysql4.x.x 이상이라면..
[root@www bin]#./mysqld_safe --user=root &
요렇게 바뀐것 같던데요...
============================================================================
MySQL 데몬이 활성화 되지 않은듯 싶습니다.
RPM으로 설치 하셨다면
/etc/init.d/mysqld start 하시고
소스로 설치하셨다면 해당 설치 디렉토리에서 데몬 실행파일을 실행해보시기 바랍니다
==============================================================================
"socket '/tmp/mysql.sock' (2)"
위의 에러는 거의 대부분이 data가 들어가는 디렉토리의 권한이 없기 때문에 나타나는 에러입니다.
먼저 user를 추가해주시고요
#groupadd mysql
#useradd -g mysql mysql
그리고 나서 mysql의 데이타가 들어있는 디렉토리를 수정해주세요
#chown -R root "mysql 디렉토리"
#chown -R mysql "mysql의 데이타가 들어있는 디렉토리"
#chgrp -R mysql "mysql 디렉토리"
이렇게 해주세요.
===============================================================================
root@linuxdb mysql]# chown -R root .
이것의 의미를 잘모르세요 발생하신것 같네요.. 저의 불찰이기도 하고요..
제일 뒤에 보이는 .(점)도 필요한부분입니다.
./ <== 현재 디뵀訝??의미하고요
../ <== 앞단계의 디렉토리를 의미합니다.
즉, 만약에 mysql폴더가 /usr/local/mysql/ 이라면
chown -R root /usr/local/mysql/
chown -R mysql /usr/local/mysql/var <== 요기는 데이타가 쌓이는 폴더입니다.
※ 이부분이 않되어있어서 그런같습니다.
chgrp -R mysql /usr/local/mysql/
그럼 성공 하시길.. 즐거운 하루 되세요...
p.s 실행하실때..
mysqld ended 가 나오면 실행이 안된겁니다.
safe_mysqld &<== 요거를 꼭붙이셔서 실행하세요.
이의미는 '백그라운드로 돌려라'라는 의미입니다.
실행하셔서 아무런 반응이 없으면 된겁니다.엔터를 한번더 치셔서 다음명령어를 치시고 계속하시면 됩니다.
=====================================================================================
mysql.sock 은 유닉스 소켓 연결에 사용되는 화일 입니다..
우선 이화일의 위치를 확인 하실 필요가 있습니다..
mysql 의 bin 디렉토리에서
mysql_config --socket
이라고 치면 현재 설정 되어 있는
mysql.sock 화일의 위치가 나옵니다.
그러면 다음과 같이 -S옵션을 주어서 프로그램을 실행해 보세요
./mysqladmin -uroot password '123456' -S/tmp/mysql.sock
/tmp/mysql.sock 에 님의 현재 mysql.sock 위치를 넣으면 되겠죠?
혹시 이렇게 해도 되지 않는 다면
netstat -ap | grep mysql
해보세요
그럼 현재 mysql 서버가 사용하는 유닉스 서버의 소켓과 정보를 보여 줍니다.
만일 소켓 화일이 /tmp/mysql.sock 이 아니라면
netstat -ap | grep mysql
통해 얻은 새로운 mysql.sock 화일의 위치를 가지고 실행해 보세요
mysql.sock 화일의 설정은 php.ini 화일에서 지정 해줄수 있습니다.
php.ini 화일에 보면
mysql.default_socket = 이라는 설정이 있는데
여기에 위치를 지정해주면 됩니다.