관리 메뉴

나만을 위한 블로그

[PHP] CentOS 7 터미널에서 MySQL 접속 시 에러 - can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (111) 해결 본문

PHP

[PHP] CentOS 7 터미널에서 MySQL 접속 시 에러 - can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (111) 해결

참깨빵위에참깨빵 2020. 1. 18. 18:59
728x90
반응형

참고한 사이트 : http://blog.freezner.com/archives/480

 

[MySQL] ‘/var/lib/mysql/mysql.sock’ (111) 에러 해결방법

보통 이 문제가 발생하는 경우는 mysql 을 패키지(RPM)으로 설치하는 케이스입니다. 설치하고 실행하는데 문제가 없어보입니다. 하지만 재부팅이나 재시작시 mysql이 동작되지 않고 아래 에러 메세지를 토해냅니다. Another MySQL daemon already running with the same unix socket. 그리고 mysql로 접…

blog.freezner.com

안드로이드와 MySQL을 연동해 앱을 만들다 기능 테스트 도중 갑자기 MySQL이 먹통이 됐다.

자세히 말하면, mysql -uroot -p 입력 후 비밀번호를 쳤더니 아래와 같은 에러 메시지가 뜨면서 MySQL에 들어갈 수가 없는 에러가 발생했다.

 

can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (111)

 

??? 갑자기???

많이 당황했지만 침착해지려 노력하며 애써 에러 메시지를 분석했다.

/var/lib/mysql 경로에 있는 mysql.sock 소켓을 통해 MySQL 서버에 접속할 수 없다....에러 번호는 111....

아무튼 mysql.sock 파일에 문제가 생긴 것으로 알고 센토스 파일 탐색기를 통해 저 경로로 들어가서 확인해봤다.

파일 내용은 아무것도 없었다. 원래 없었나? vi로 확인해도 똑같이 텅 빈 파일이었다.

 

어떻게 하면 좋을지 몰라서 일단 저 에러 메시지를 통째로 구글 검색창에 쳐봤다.

그러자 다행히도 나와 같은 CentOS 7에서 이런 에러 메시지 대책을 설명한 글을 찾았다.

보통 이 문제는 RPM으로 MySQL을 설치한 경우 생기는 에러라고 한다.

그리고 mysql.sock은 rm 명령어로 삭제해도 다시 생기는 파일이라고 한다. 그래서 이 명령어를 쳐서 해결하는 건 근본적인 해결책이 되지 못한다.

 

# rm -rf /var/lib/mysql/mysql.sock

 

나도 MySQL을 root 계정으로 설치했고, 그래서 mysql.sock의 소유권이 나한테 없다. 그럼 이렇게 하면 된다.

chmod와 chown 명령어를 이용해 권한을 바꿔주면 해결된다.

 

# service mysqld stop

# chmod 755 -R /var/lib/mysql

# chown mysql:mysql -R /var/lib/mysql

# service mysqld start

 

먼저 mysqld 데몬을 중단시킨 뒤 권한, 소유를 mysql로 바꾸고 다시 mysqld 데몬을 시작하는 법이다.

stop, start 명령어를 쳤을 때 난 이런 문장이 나왔었다.

 

Redirecting to /bin/systemctl stop mysqld.service

Redirecting to /bin/systemctl start mysqld.service

 

무시하고 똑같이 진행했다. 전부 입력 후 전처럼 똑같이 mysql -uroot -p를 쳐서 MySQL로 접속을 시도했다.

그러자 된다. show databases;로 DB를 확인해도 내가 만들어뒀던 DB들이 모두 나오는 걸 확인했다.

테이블도 모두 있고, 다른 명령어들도 전부 정상 입력되는 걸 확인했다.

이걸로 에러 수정 끝.

반응형
Comments