[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>