어제 mysql 관련된 sprint 진행 중 mysql 설치를 하고 part-3 테스트를 통과했다. 스케줄에 맞춰 오늘은 다음 테스트인 part-4를 통과하기 위해 테스트를 돌려봤지만 계속 데이터베이스가 연결이 안되어 있다는 에러가 나왔다..데이터베이스는 생소하기 때문에 도대체 뭐가 문제인지 확인하기에 굉장히 오랜시간이 걸렸고 꽤 힘든시간을 보냈다. 계속 연결이 안된다는 에러가 나기에 mysql 재접속을 반복하던 중 갑자기 접속이 안되었다.
처음에는 이러한 에러가 발생했다. 구글링을 해보니 mysql.sock 관련 에러는 원인이 굉장히 다양하다고 한다.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
해결방안으로는 mysql.sock의 위치를 찾은 후 정확한 경로의 해당 파일을 실행 시켜주는 것이였다.
find / -name mysql.sock
나의 경우 위에 명령어로는 mysql.sock을 찾을 수 없어서 아래와 같은 명령어로 해결했다.
mysql_config --socket
mysql.sock이 /tmp에 속해 있다는 것을 찾았다. mysql.sock이 위와 같은 경로에 위치하고 있기 때문에 my.cnf파일 안에 내용을 위와 같은 경로로 수정해줘야 한다.
sudo vi /etc/my.cnf // sudo를 입력해줘야 파일을 수정하고 저장할 수 있다. 미입력 시 읽기만 가능
참고로 vi로 접속하면 키보드 i(insert)를 눌러야 입력이 가능하다. 수정 후 esc키를 누르고 :wq!를 입력하면 저장이 된다.
이제 해결이 다 되었다고 생각해 mysql -u root -p를 입력해보니 이번엔 또 다른 에러가 발생되었다..
Access denied for user 'root'@'localhost' (using password: YES)
mysql 접속 시 비밀번호를 설정해뒀는데 비밀번호가 맞치 않다는 뜻이었다. 분명 정확히 했다고 생각했는데 여러번 만지다 보니 꼬인 것 같다. 이번에도 구글링을 해보고 간신히 해결 할 수 있었다.
위 모든 상황이 동작되지 않을 때 Homebrew를 지웠다 다시 깔아야 한다.