DBMS/MySQL

[MySQL] ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

RYEAN 2020. 2. 19. 11:47
반응형

 


 

 

[root@test ~]$ mysql -u dba -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socker '/var/lib/mysql/mysql.sock' (2)

mysql 접속 중 위와 같은 오류가 발생했다.

'/var/lib/mysql/mysql.sock' 에 연결할 수 없다는 오류이다.

 

해당 오류가 발생하는 원인과 해결방법이 다양한데 나는 두가지 정도 체크한 후에 해결하였다.

 

[원인-1]

mysqld 가 시작되지 않은 상황에 발생할 수 있다.

아래의 명령어를 통해 나의 mysqld 작동 상태를 확인 할 수 있다.

[root@test ~]$ service mysqld status
MySQL is stopped

 

[해결-1]

만약 위와 같이 나왔다면 MySQL 이 실행중이지 않다고 하면

아래의 명령어로 sqld 를 실행시켜주면 된다.

[root@test ~]$ service mysqld start

하지만,

나의 경우에는 아래와 같이 sqld 가 정상 실행중이였다.

[root@test ~]$ service mysqld status
MySQL running (20094)

 

 

[원인-2]

/var/lib/mysql 경로에 mysql.sock 이 존재하지 않아서 발생할 수 있다.

아래 명령어를 통해 mysql.sock 파일이 어디에 위치하고 있는지 확인할 수 있다.

[root@test ~]$ find / -name mysql.sock
/tmp/mysql.sock

나의 경우, /tmp 에 mysql.sock 이 위치하고 있었다.

 

 

[해결-2]

이를 해결하기 위해서 심볼릭링크 (Symbolic Link) 를 이용하여 해결할 수 있다.

 

심볼릭 링크 (Symbolic Link) 란?

원본 파일에 링크를 연결시켜둔 것으로 윈도우 (Windows) 에서 바로가기와 비슷한 개념이다.

 

심볼릭 링크 (Symbolic Link) 설정 명령어

ln -s [원본 파일명] [새로운 파일명]

 

먼저,  /var/lib/mysql 디렉토리가 없다면 아래의 명령어를 통해

디렉토리를 생성해준 후, 심볼릭링크 (Symbolic Link) 를 걸어주자.

[root@test ~]$ mkdir /var/lib/mysql
[root@test ~]$ ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

 

아래 명령어를 통해 심볼릭링크 (Symbolic Link) 여부를 확인할 수 있다.

[root@test ~]$ ll /var/lib/mysql/
total 0
lrwxrwxrwx 1 root root 15 Feb 19 10:24 mysql.sock -> /tmp/mysql.sock

위 의미는 /tmp/mysql.sock 라는 원본파일이 /var/lib/mysql/mysql.sock 에 심볼릭링크 (Symbolic Link) 로 연결되었다는 의미이다.

 

다시 로그인을 시도해보니 정상 로그인된 것을 확인할 수 있다.

[root@test ~]$ mysql -u dba -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 130446
Server version: 5.6.25-log MySQL Community Server (GPL)

Copyright (c) 2000, 2013, 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>
반응형