[MYSQL] 소켓 에러-Can not connect to local MySQL server through socket '/tmp/mysql.sock'

pintegral·2022년 10월 12일
0

SQL

목록 보기
1/1
post-thumbnail

Problem


어제까지만 해도 잘 돌아가던 mysql workbench에 root로 로그인했더니

your connection attempt failed for user 'root'
to the mysql server at localhost:3306:
access denied for user 'root'@'localhost' 
(using password: yes)

이런 오류가 뜨면서 3306 포트가 이미 사용되고 있는 건 아닌지, localhost에서 mysql을 돌리고 있는 건 아닌지 등등 체크해보라는 오류메세지가 떴다.

1) 터미널에서 mysql.server stop ,mysql.server restart 를 하면 돌아가고 있는 mysql 서버가 없다고 나왔다.

그래서
2)mysql.server start를 해주었더니

Can not connect to local MySQL server
through socket '/tmp/mysql.sock'

이런 오류 메세지가 떴다.

Solution


검색해봤더니 mysql 서버를 껐다 키든가, 아니면 mysql 설정파일(my.cnf)에서 mysql 소켓(mysql.sock) 위치를 추가해주라는 solution을 보았다.

mysql 소켓 위치는 현재 /tmp에 있는데 해당 디렉토리가 아닌 (소켓의) 디폴트 디렉토리에서 소켓을 찾기 때문에 오류가 났을 수도 있다는 것이다.

1) mysql 소켓 위치 확인

mysql_config --socket

확인해서 소켓 경로(/tmp/mysql.sock)를 기억해둔다

2) mysql 설정파일 위치 확인

mysqld --verbose --help | grep -A 1 'Default options'

3)편집기로 mysql 설정파일 열기

vim /opt/homebrew/etc/my.cnf ~/.my.cnf 

4)아까 찾은 mysql 소켓파일 위치 추가

[client] 
socket = /tmp/mysql.sock
[mysqld]
socket = /tmp/mysql.sock

5) 터미널에서 mysql 서버 시작

mysql.server start

mysql workbench로 root 로그인해보면 접속 성공..!

profile
문제를 끝까지 해결하려는 집념의 개발자

0개의 댓글