분명히 어제까지 잘 돌아가던 내 장고 어플리케이션... 커밋하고 다음날 출근해서 다시 서버를 돌리니까 갑자기 혼자 죽어버렸다.
migrate가 안되는데, 에러 로그를 찾아보니 mysql 서버에 연결할 수 없다고 뜬다.
터미널로 mysql 실행시켜보니까 나오는 에러 로그.
ERROR 2002 (hy000): can't connect to local mysql server through socket '/tmp/mysql.sock' (2)
내 회사에서의 모든 시간을 여기다가 투자했음에도 고치진 못했다. (하지만 지금은 고침 ㅎ)
Stack Overflow와 각종 블로그, Github Discussion의 모든 글을 뒤지니까 이유가 몇 가지로 정리된다.
1. MySQL 서버를 실행하지 않아서 발생하는 문제
→ 'brew services start mysql' 명령어를 통해 mysql 서버를 실행시킨 후 접속하면 가능
2. mysql.sock 파일의 경로 문제
→ /tmp 위치에 mysql.sock 파일이 없어서 발생할 수도 있음. 이럴 경우에, mysql.sock 파일이 위치한 경로를 찾아서 /tmp 위치에 심볼릭링크(Symbolic Link)를 걸어서 해결할 수 있음.
3. 권한 문제
→ 'mysql.sock' 파일이 있는 디렉터리 소유 권한이 없어서, 접근이 불가능하여 오류가 발생할 수 있음.
mysql.sock 파일이 있는 디렉터리를 'chmod' 명령어로 권한 부여하면 해결이 가능하다.
내 파일은 /tmp에 위치해 있었고, 권한을 부여해줘도 여전히 동일한 오류를 보여줬다. 심지어 소유자도 mysql로 바꾸면 된다해서 바꿨는데도 동일한 증상을 보였다.
* 따라서, 모든 sql 관련된 파일을 삭제하고 'brew uninstall mysql'을 해서 싹 다 밀어버렸다. 다 밀고 재설치를 해도 동일한 오류를 보여줘서 미치고 팔짝 뛰는 줄 알았다.
mac 업데이트를 하고 나서 생긴 일이라, window로 개발 환경을 바꿔야겠다고 생각하고 조금만 더 만지는 와중, 마지막으로 가기 전에 환경 꼬일까봐 안해봤던 도전 몇개를 해보기로 했다.
1. 'mysql.server start' 명령어 실행 시 나오는 에러 고치기 ( The server quit without updating PID file )
Prain@ui-MacbookPro / % mysql.server start
Starting MySQL
. ERROR! The server quit without updating PID file (/opt/homebrew/var/mysql/ui-MacBookPro.local.err.local.pid).
→ 이 에러는 mysqld(mysql daemon) 프로세스가 서버를 실행한 후 pid 파일을 데이터 디렉토리 위치에 쓰려고 할 때 디렉토리의 소유권과 파일에 대한 권한이 없어서 발생한다. 해결하려면, 디렉토리 소유권과 파일 권한을 변경해줘야 한다.
우선 권한 부터 변경했다.
/opt/homebrew/var/mysql 디렉토리의 권한 변경 : sudo chmod -R 777 /opt/homebrew/var/mysql
이 커맨드를 실행하니까 Operation Not Permitted 오류 발생.
2. Operation Not Permitted 에러 고치기
Prain@ui-MacbookPro / % sudo chmod -R 777 /opt/homebrew/var/mysql
chmod: changing permissions of '/opt/homebrew/var/mysql': Operation Not Permitted
→ 이 에러는 Mac OS의 System Integrity Protection에서 발생한 문제라고 한다.
해결 방법은 맥 시스템 설정 > 개인정보 보호 및 보안 > 전체 디스크 접근 권한 탭에서 '터미널'을 체크해 권한을 허용해 줘야 한다.

설정 변경 후, 'mysql.server start'를 하니까 mysql server starting .......................... 하면서 한무 로딩...
결국 이번에도 글렀구나 했다.
아쉬운 마음으로 터미널 끄고 mysql.server start 하니까 갑자기 돌아간다?
화들짝 놀라서 허겁지겁 exit 하고 brew services list하니까 started라고 뜨는거시었다.


참고로 나는 homebrew로만 mysql 설치하고 다른 루트로 설치한 적 없음...
라고 해결한 줄 알았디만, 다음날 껐다 키니까 어김없이 같은 오류가 생겼다.
hombrew로 재설치하는건 더이상 의미가 없었는데, 몇시간의 삽질 결과
[mysql 패키지 설치]가 답이었다~

이거때문에 3일 고생한거 생각하면 아직도 머리가 지끈지끈하당.
친구가 안도와줬으면 울면서 윈도우로 도망갔을듯. 친구야 곰마웡~
'coding > Trouble shooting' 카테고리의 다른 글
| Building wheel for mysqlclient (pyproject.toml) did not run successfully (0) | 2024.03.12 |
|---|---|
| ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1131) (0) | 2024.01.24 |