MySQL: root 비밀번호(초기암호) 분실, 재설정 for Mac

Posted by 드린
2017. 9. 15. 03:13 IT

MySQL을 다루다보면 자주 사용하지 않는 root 비밀번호는 잊어버리게 되죠.


평소에 웹에서 접근할 때에도 

따로 사용자를 만들어주어 

초기 설정 외에는 잘 사용하지 않습니다.


혹은 MySQL 설치 시 

임시로 발급되는 비밀번호를 잊어버리거나 

발급되었는지도 모르고 넘겨버리는 경우가 많죠.


이럴 때는 MySQL을 재설치하기도 귀찮고 그렇죠.


이런 문제를 해결하기 위하여 다음과 같은 절차를 밟으시면 됩니다.

재설정 과정은 그리 길지 않으니 걱정마세요!

맥북을 예로 들겠습니다.

먼저 사과모양을 클릭 하신 뒤 시스템 환경설정에 들어갑니다.

시스템 환경설정에서 MySQL 아이콘을 눌러줍니다.

MySQL를 설치하셔야 아이콘이 생성됩니다.

그럼 MySQL 컨트롤 창이 나오게되는데, 

Stop MySQL Server를 클릭하여 서버를 중지시켜줍니다.


꼭!꼭! 중지시켜주세요.

저도 중지시키지 않고 했다가 재부팅만 여러번 했습니다.

이런 과정이 귀찮으시다면,

$ sudo /usr/local/mysql/support-files/mysql.server stop

Password:

Shutting down MySQL

.. SUCCESS! 

다음과 같이 sudo /usr/local/mysql/support-files/mysql.server stop 명령을 입력해주시면 됩니다.

이때 비밀번호는 맥북 비밀번호입니다.

sudo 명령어(관리자 권한)가 들어갔을 때는 무조건 맥북 비밀번호(맥북 시동 시 작성하는 비밀번호)입니다.

다음과 같이 SUCCESS! 문구가 나오면 정상적으로 종료되었습니다.


그럼 이제 root 계정을 비밀번호없이 mysql에 접속하는 과정에 들어갑니다.


$ sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables

Password:

2017-09-14T17:33:49.6NZ mysqld_safe Logging to '/usr/local/mysql/data/baegui-MacBook-Pro.local.err'.

2017-09-14T17:33:49.6NZ mysqld_safe Logging to '/usr/local/mysql/data/baegui-MacBook-Pro.local.err'.

2017-09-14T17:33:49.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

터미널을 열어 sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables를 입력하시고,

비밀번호를 작성하게되면 다음과 같은 문구가 나옵니다.

위 명령어를 입력하는 순간 잠시동안 root계정을 비밀번호없이 mysql에 접속이 가능합니다.


위와 같이 진행하셨다면,

또 다른 터미널을 열어주세요.


그 후에 다음과 같이 입력합니다.

$ sudo /usr/local/mysql/bin/mysql -u root

Password:

여기서의 패스워드는 sudo로 실행했으니 맥북 비밀번호를 묻는 것입니다.

패스워드를 입력하셨다면 다음과 같이 mysql 접속에 성공합니다.


Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.7.17 MySQL Community Server (GPL)


Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql>

자, 그럼 이제 user 테이블에 들어가서 비밀번호를 변경해야합니다.

때문에 다음과 같이 입력해주는데, 구버전과 신버전에 따라 쿼리문이 달라집니다.

먼저 구버전으로 테스트해보시고

mysql> update user set password=password('rootpass') where user='root';

ERROR 1054 (42S22): Unknown column 'password' in 'field list'

다음과 같이 password라는 컬럼을 찾을 수 없다고 하면,

다음과 같이 입력하시면 됩니다.

mysql> update user set authentication_string=password('rootpass') where user='root';

Query OK, 1 row affected, 1 warning (0.01 sec)

Rows matched: 1  Changed: 1  Warnings: 1

새로운 버전이 나오면서 

password 컬럼이 authentication_string으로 변경되어 

위와 같이 쿼리문이 달라지게 된 것이예요.


여기까지 진행하셨다면, 터미널을 전부 종료하고 mysql을 실행시켜,

 root계정으로 접속하시면 됩니다.


앞으로는 root 비밀번호 잊어버리지 말아요~

이 댓글을 비밀 댓글로