어제까지만 해도 잘 돌아가던 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'
이런 오류 메세지가 떴다.
검색해봤더니 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 로그인해보면 접속 성공..!