🥞 BE
home

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

두가지 원인 분석을 할 수 있었다.
1.
MySQL 서버가 실행되고 있지 않아서
2.
소켓 파일 위치가 달라서
1은 아니었고, 2번을 시도해보았다. MySQL 설정 파일(/etc/my.cnf, /etc/mysql/my.cnf, 또는 /etc/mysql/mysql.conf.d/mysqld.cnf)에서 socket 경로를 확인. my.cnf 경로는 다 다른 것 같다. 경로에도 문제가 없었고, 소켓 파일 경로 지정도 잘 해주었는데.. 여전히 오류가 떴다.

mysql 완전 삭제하기

어차피 로컬에서 쓰던건 이제 크게 의미없어서 데이터 다 날리고 새로 설치하는 방식을 선택.
1.
mysql 서버를 중지한다.
brew services stop mysql
2.
Homebrew를 통해 mysql 제거
brew uninstall mysql
3.
mysql 데이터 디렉토리를 삭제
sudo rm -rf /opt/homebrew/var/mysql
4.
mysql 설정 파일 삭제
sudo rm /opt/homebrew/etc/my.cnf
5.
환경 변수 확인 및 제거
환경 변수에서 MySQL 관련 변수를 확인하고 필요한 경우 제거
~/.bash_profile~/.zshrc, 또는 다른 쉘 설정 파일을 확인하여 MySQL과 관련된 PATH 또는 환경 변수를 찾아 제거
6.
기타 파일 삭제
sudo rm -rf /usr/local/var/mysql
7.
Homebrew에서 mysql과 관련된 패키지 파일 삭제
brew list | grep mysql
brew uninstall [패키지명]
다시 재설치 후! mysql 서버 시작 후 MySQL 클라이언트에 접속하면 잘 된다.
그러나 여전히 socket 연결 에러가 뜬다면,
️ sudo rm /tmp/mysql.sock 
그냥 제거만 하세요! 제거하고 touch 명령어로 mysql.sock 만들지 말고 제거만!!!
mysql.sock 을 제거했으면 다시 Mysql 서버 시작 (brew services start mysql)
mysql -u root -p 로 클라이언트 접속하고 password는 그냥 엔터치면 성공... (초기화된 상태라 root 비밀번호가 없다)
아래 레퍼런스 참고해서 초기화도 진행해준다.

Reference