일단 시작해보는 블로그

[Mysql] ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 에러 본문

개발/Mysql

[Mysql] ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 에러

Selina Park 2019. 10. 16. 01:00

잘 되던 mysql에 접속했는데 갑자기 다음과 같은 오류가 생겨서 실행이 안됐다....

parkjinsun:~ jinsun$ mysql -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

왜 생겼을까 이런 오류..

mysql.sock?

unix/linux 의 디렉토리 구조상 임시 저장 directory인 /tmp에서 mysqld가 start 상태일 때 생성되었다가 stop상태일 때는 지워지는, mysqld(mysql의 서버 프로그램) 과 mysql(mysql 클라이언트 프로그램)이 같은 컴퓨터에서 통신할 때 파일을 사용하여 통신하는데 이때 사용되는 파일이다. (mysql.sock, 이런 파일을Unix Domain Socket이라고 한다.)

 

mysql 서버 프로그램(데몬, mysqld)과 클라이언트 프로그램(mysql, 또는 php의 접속 루틴)은 서로 다른 프로세스이다.

당연히 mysql이라는 완성된 프로그램이 실행될 때 mysqld와 mysql 사이에서 통신이 이뤄져야한다.

mysqlTCP/IP 소켓(주로 mysqld와 mysql이 다른 컴퓨터에 있을 때 사용하는 통신 방법, 이때 포트는 보통 3306)과 Unix Domain Socket(같은 컴퓨터에 있을 때는 보통 TCP/IP보다 이것을 사용한다) 둘 다 사용할 수 있다.

TCP/IP 소켓이 IP주소와 포트를 이용해서 통신을 하듯 Unix Domain Socket는 파일을 이용한다. 이때 mysql.sock은 이런 용도로 사용되는 파일이다.

따라서 mysqld를 실행시켰을 때는 mysql.sock파일이 있지만, 중지시키면 이 파일은 사라지게 되는 것.

 

나의 해결책 

이것저것 다 해봤지만 .... brew를 통해서 설치했기 때문에 몇번을 지웠다가 다시 설치해봤지만.........! 해결이 안되더니.. mysql 설정파일을 깔끔히 지워주니 해결이 됐다!..제발 앞으로는 잘됐으면 좋겠는데 하하..

 

1. mysql이 실행되고 있다면 stop 시켜야한다.

parkjinsun:bin jinsun$ brew services stop mysql
Stopping `mysql`... (might take a while)
==> Successfully stopped `mysql` (label: homebrew.mxcl.mysql)

2. 완벽히 삭제한다.

parkjinsun:bin jinsun$ brew uninstall mysql
Uninstalling /usr/local/Cellar/mysql/8.0.18... (293 files, 280.9MB)
parkjinsun:bin jinsun$ rm -rf /usr/local/var/mysql
parkjinsun:bin jinsun$ rm /usr/local/etc/my.cnf

3. brew를 통해서 재설치한다.

parkjinsun:bin jinsun$ brew install mysql

4. mysqld를 start한다.

parkjinsun:bin jinsun$ mysql.server start
Starting MySQL
. SUCCESS! 

5. mysql 클라이언트를 실행시킨다. 

(드디어 예쁜 mysql> 이 나와줘서 나는....너무 기뻤다..............고마워....하........)

parkjinsun:bin jinsun$ mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.18 Homebrew

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

 

[출처]

https://sysadm.kr/9

'개발 > Mysql' 카테고리의 다른 글

[MongoDB] Data Modelling  (0) 2019.08.26
[MongoDB] About MongoDB, 몽고DB  (0) 2019.08.26
Comments