Cant connect to local MySQL server through socket tmp mysql.sock 2 No such file or directory

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]#

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

backend 과제를 3번까지 모두 수행한 이후, 4번 수행 중 오류가 발생하였습니다. migration을 위해
python manage.py migrate
을 수행하였으며
django.db.utils.OperationalError: (2002, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)")
라는 에러메세지가 나타납니다. 구글링 결과, mysql이 제대로 실행되지 않았을 수 있다고 하여
sudo service mysql restart
를 실행한 후 다시 시도하였으나 여전히 해결이 되지 않습니다.

Cant connect to local MySQL server through socket tmp mysql.sock 2 No such file or directory

Ubuntu 20.04 사용 중이며, Anaconda를 이용해 Python과 Django 등을 설치하였습니다.

sudo service mysql status해보시고 결과 알려주시겠어요?

Cant connect to local MySQL server through socket tmp mysql.sock 2 No such file or directory

구글링해보니까 socket이 저 위치(/tmp/mysql.sock)에 있지 않아서 그런 것 같습니다. migrate할 때 socket 위치를 지정할 수 있나요?

Cant connect to local MySQL server through socket tmp mysql.sock 2 No such file or directory

ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock

완전한 해결책이 아닌 것 같습니다... tmp라 그런지 재부팅하면 symbolic link가 사라지네요.

아직 해결하지 못했습니다. HW0을 완성하는 것이 더 급한 것 같아서 부팅시마다 symbolic link를 만드는 임시방편으로 해결했는데, HW1 수행하면서 더 알아봐야 할 것 같습니다.

tictactoeid changed the title backend 4번 migrate 관련 migrate 시 "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)" 오류 (임시해결)

Sep 12, 2020

링크 만들지 않고
mysql.server start
혹은
service mysqld start
를 통해 서비스를 실행시켜 보신 후 결과 알려주세요

mysql-server/mysqld가 제대로 설치안된거같아요

sudo apt-get --purge remove mysql-server mysql-common mysql-client.

sudo apt update && sudo apt dist-upgrade && sudo apt autoremove.

sudo apt-get install -y mysql-server mysql-client

로 지웠다가 설치해보시겠어요? 조금 꼬여서 안될거 같기도 하네요

시도해봤는데 여전히 그대로입니다.
mysql.server start
service mysqld start
python manage.py migrate
모두 결과가 변하지 않았습니다.