본문 바로가기
SW 프로그래밍/Mariadb

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

by N2info 2020. 9. 16.

MySQL 데몬이 활성화 되지 않은아 생기는 문제임.

 

Mysql 은 설치 후 , 데몬(mysqld)이 돌아가고, 그거에 mysql이라는 프로그램으로 접속하는 방식이다.

따라서, 설치 후, 데몬이 돌아가고 있어야 한다.

 

ps -aux | grep mysqld

 

로 확인 가능하고,

 

service mysqld stop

service mysqld start

(service mysqld restart)

으로 시작 가능하다.

 

 

service mysqld start 를 하니까 되더라. 이런 어처구니 없는 경우가.

 

로그를 본 게 이유가 되는 건 아닌 것 같다만... 왜 갑자기 되는지는 의문이다.

 

여튼.

 

데몬이 떠 있는데도 문제가 생기는 경우의 해결책을 모아 보았다.

 

 

 

1. 

 

fedora 12에 mysql 설치하고 서비스띄우고 실행할라치면

[root@fedy bin]# ./mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
요런식으로 에러메시지가 뜰때가 있다... 악명높은 ...
뭐 해결하고 보니 의외로 간단한... 십라 ㅡ,.ㅡ
해결방법은 심볼릭 링크를 걸어주는것...
[root@fedy bin]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
이렇게 걸어주면 됨...
찾다보니 '/tmp/mysql.sock'  가  '/var/lib/mysql/mysql.sock' 이런식으로 나올때오 있는 모양임...
이럴때는 순서를 바꿔서 심볼릭  링크를 걸어주면 되는 모냥임...
[root@fedy bin]# ln -s  /tmp/mysql.sock /var/lib/mysql/mysql.sock
요렇게...
링크를 걸어주고 실행하믄~
[root@fedy bin]# ./mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.48 Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.02 sec)
mysql>

 

 

 

 

2. 

 

 

 

MySQL server through socket '/tmp/mysql.sock'라는 에러가 뜰경우

[root@www bin]# ./mysql

ERROR 2002: Can't connect to local MySQL server through 

socket '/tmp/mysql.sock' (2)

[root@www bin]# 

위 내용은 APM설치후 mysql실행하면, 저렇게 나오는데..
아무리 vi /tmp/mysql.sock 를해도, 안에 아무런 내용이없는데.
저럴때는 어떻게 해야하나요?

---------------------------------------------------------------------------------------

mysql 서버가 실행되어 있지 않아서입니다.

/tmp/mysql.sock 소켓파일은 mysql 실행하시면 생성됩니다...

우선 root 상태에서 아래 명령어를 실행하세요.

[root@www bin]#./safe_mysqld --user=root &

그 다음 ps aux 로 mysql 데몬 정상적으로 실행되었는지 확인하신 다음 접속해 보세요.

참고로 설치하신 mysql버전이 mysql4.x.x 이상이라면..

[root@www bin]#./mysqld_safe --user=root &

요렇게 바뀐것 같던데요...

 

 

============================================================================

 

MySQL 데몬이 활성화 되지 않은듯 싶습니다.

 

=====================================================================================

 

mysql.sock 은 유닉스 소켓 연결에 사용되는 화일 입니다.. 
우선 이화일의 위치를 확인 하실 필요가 있습니다..

netstat -ap | grep mysql

해보세요
그럼 현재 mysql 서버가 사용하는 유닉스 서버의 소켓과 정보를 보여 줍니다.

[root@localhost /var/lib/mysql]#netstat -ap | grep mysql
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN      9941/mariadbd
unix  2      [ ACC ]     STREAM     LISTENING     127110   9941/mariadbd        /var/lib/mysql/mysql.sock
[root@localhost /var/lib/mysql]#

====================================================================================