문제의 발단
mysql -u root
Enter
를 통해 비밀번호가 없는 root
계정을 생성했다. 만약 mysql -u root -p
를 입력하면 계정 생성과 동시에 임의의 패스워드를 입력하고 나중에 변경 가능하다.brew install mysql // 설치
brew services start mysql // 서비스 시작
mysql -u root // 비밀번호 없이 로그인
'root-password'
자리에 패스워드를 지정했는데 mysql>
을 한번 exit
한 이후로 다시 sql 서버에 들어가려고 할 때마다 root
에 접근이 거부되는 헬이 시작되었다.ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password'; // root-password 대신에 각자의 비밀번호 입력
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
의 발생 이유는 지금 와서 보니 알 것 같다. 지정한 비밀번호가 존재하면 무조건 mysql -u root -p
로 접속해야 하는데 -p
를 포함하지 않은 것이다.-p
를 넣었는데 Enter password:
에서 비밀번호가 잘 지정된 건지 확신이 서지 않아 그냥 엔터를 눌러보았다. 그런데 에러가 떠서 이번엔 지정한 비밀번호를 눌렀는데도 using password:
부분에 No
YES
만 다른 ERROR 1045ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
였다. mysql
이 설치는 되었는데 작동이 되고 있지 않을 때 나타나는 메세지라고 한다. brew services start mysql
나 mysql.server start
로 서버를 열어야 한다.문제 해결
결국 문제는 root
에 접속할때 비번 없이 엔터를 치든, 맥북 로그인 비번을 치든, 내가 지정한 특수문자가 포함된 엄청 복잡한 비번을 치든 무조건 접근이 거부되는 상황이었다. (아무래도 오타가 있었던 것 같다.) 나는 분명히 비번을 지정하긴 했기 때문에 에러메세지로 구글링 하던 것을 mysql root password lost 쪽으로 노선변경했다.
--skip-grant-tables
의 발견: 이 옵션을 입력하면 계정 관리에 관련된 SQL 명령들을 실행하지 않는다. 그래서 보통 root
의 사용자 비번을 잃어버렸을 때 비번 없이 데이터베이스 서버에 접속하기 위해 사용된다. 그래서 mysql.server start --skip-grant-tables
를 입력해 서버를 열었다.
그리고 비번없이 계정에 접근하는 mysql -u root
를 입력했더니 드디어!!! Welcome to the MySQL monitor라는 문구를 만나게 된다.
그리고 이번에는 엄청 쉬운 비번을 지정하려고 ALTER USER
커맨드를 쳤더니 또 다시 나를 어택하는 ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
ㅠㅠ.. 읽어 보니 현재도 --skip-grant-tables
가 걸려있어서 커맨드를 실행할 수 없다는 것이었다.
이 옵션을 해제하는 방법은 FLUSH PRIVILEGES
이다. 그리고 나서 다시 비번 변경하는 커맨드 입력했더니 Query OK! exit
으로 나가고 재접속을 시도해 봤다.
다시 말하지만 비번이 있다면 mysql -u root
다음에 -p
를 잊지 말자. 그럼 ERROR 1045 (28000)
또 뜬다! 이제 비번 입력하면 무사히 MySQL에 잘 접속되고 실행되는 걸 볼 수 있다.
마치며...
처음에는 문제가 어디서부터 시작되는지 감이 안 왔다. 그래서 에러메세지만 구글링해서 답변들이 다 영어니 피곤해서 제대로 읽지도 않고 우선 복붙해서 다 쳐봤다. uninstall/install도 세 번은 한 것 같다. 왜 그렇게 해결하는지를 이해하려고 한 것이 아니라 운좋게 하나만 걸려라 이런 마인드였다. 근데 그렇게 2시간을 고생하고도 안 풀렸을 때, 다시 제일 처음으로 되돌아가 문제가 뭐였지? 되짚어봤다. 패스워드를 안 입력해도, 틀릴 리 없는 맥북 비번을 입력해도, 긴 비번을 입력해도 답이 없을 때는 나의 비번 설정 오류를 의심했어야 했다. 그래서 검색의 방향을 바꾸니 문제가 풀렸다. 앞으로는 무작정 에러메세지만 검색하지 말고 그 전후 상황을 이해하고 검색어를 구체적으로 설정하고 그 설명들도 주의깊게 읽어보면서 가져다 써야겠다.