centos에 yum으로 mysql 설치후 접속 에러 입니다.
글쓴이: bumworld / 작성시간: 일, 2010/03/14 - 11:29오후
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
centos에 yum으로 mysql 설치 후에 위와 같은 오류로 접속이 안됐습니다.
그래서 찾아서니 mysql.sock 파일이 문제인듯 한데 아래 두 파일이 모두 존재하지 않습니다.
이 파일을들 어디서 복사해와야 하는건지요? 아니면 생성할수 있는 방법이 있나요? 도움 부탁드립니다.
mysql 설치 버전은 5.x 입니다.
[client]
socket = /var/lib/mysql/mysql.sock
[mysqld]
socket = /var/lib/mysql/mysql.sock
Forums:
복사해오는 파일이
복사해오는 파일이 아닙니다. 서버가 구동된 후에 자동으로 생성됩니다. 해당 로컬 소켓을 통해서 mysql client와 통신할 수 있습니다.
따라서, 해당 위치에 파일이 없다면 서버가 구동되지 않은 것으로 보입니다. ps -ef | grep mysql로 mysql server가 정상적으로 시작되었는지 확인하신후에,
시작되지 않았다면 service mysqld start한 후에 다시 확인해보세요. 만약에 서버가 정상적으로 시작되지 않는다면 /var/log/mysql/ 혹은 my.cnf에 지정된 log 파일을 확인해보셔야 합니다.
( my.cnf는 /etc/my.cnf 혹은 /etc/mysql/my.cnf에 있습니다 )
yum 설치후 같은 에러가 발생하였습니다. temp
yum 설치후 같은 에러가 발생하였습니다.
temp 폴더에 생성되는 sock 파일을 mysql이 원츄하고 있는 이름으로 심볼릭 링크를 만들어 해결했습니다.
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
답변 감사합니다.
현재 서버에서도 접속이 안되고 있습니다.
말씀하신 로그를 보니 /var/log/mysqld.log 란파일이 존재 합니다.
안에 내용중에 error부분이
/usr/libexec/mysqld: Disk is full writing './mysql-bin.000024' (Errcode: 28). Waiting for someone to free space... Retry in 60 secs
이런 내용이 있는데 이게 용량이 부족해서 발생하는에러인듯 합니다..
/var/lib/mysql에 보면 mysql-bin.000001~ 이렇게 증가하면서 파일이 생성이 되는데 기가 단위로 쌓이는 파일들이 생겼습니다.
위 파일들을 그냥 삭제해도 문제가 없는지요?
용량에 관련해서는 제가 좀더 찾아봐야 할듯 합니다.
답변 감사합니다.
ps. 아래설정이 서버에 올려져 있는 my.cnf 파일인데 문제가 있는 부분이 있을지요?
(주석은 제거하고 올렸습니다.)
---------------------------------------------------------------------
[client]
default-character-set=utf8
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysqld]
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 384M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
thread_concurrency = 8
og-bin=mysql-bin
server-id = 1
[mysqldump]
quick
max_allowed_packet = 16M
1. mysql-bin.000001~ 이런
1.
mysql-bin.000001~ 이런 파일은 마지막 백업한 이후의 변경 사항이 저장된 파일로 알고 있습니다.
기가 단위로 쌓여 있다고 하면 백업을 자주 하는 건 아닌가 보네요.
이 파일을 지운 후 바로 full 백업을 한다면 지워도 무방하지 않을까 싶습니다.
2.
별 중요하지 않은 내용이지만,
[mysqld] 항목의 아래 두개는 같은 뜻이니 하나를 삭제해도 무방합니다.
default-character-set=utf8
character-set-server=utf8
매뉴얼에 의하면 향후 버전에선 default-character-set을 안쓴다고 하니 그걸 지우는게 낫겠네요.
3.
역시 사소한 거지만
클라이언트 문자셋을 무시하고 무조건 utf8로 설정할 거라면
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
위 두 줄 대신에
skip-character-set-client-handshake
를 쓰는게 더 나을 듯 합니다.
--
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.
----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.
academic님께서 답변을
academic님께서 답변을 잘 달아주셨지만, 한 가지 추가로 적어봅니다.
mysql-bin.* 은 mysqld에서 실행된 쿼리를 바이너리 형태로 보관한 파일입니다.
mysqldump와 같은 스냅샷 백업과 달리 특정 지점까지 유연하게 복원할 경우에 사용할 수 있으며, 리플리케이션에는 반드시 필요한 데이터입니다.
필요한 경우 툴을 사용하여 binlog를 text형태의 쿼리집합으로 복원할 수 있습니다.
답변 감사합니다.
yum으로 설치해놓고 백업 설정을 안했는데 default 백업 설정이 되어 있는듯 합니다.
처음에는 로그도 어디서 확인해야 할지 몰라서 고민했는데 역시 답은 로그에 있군요..ㅋㅋ
lqez님과 academic님 답변 감사합니다..
댓글 달기