MySQL에 처음 설치한 후 루트(root) 비밀번호를 따로 지정하지 않으면, 서버는 비밀번호 없이도 루트 계정으로 접속할 수 있습니다. 하지만 이는 보안상 매우 위험한 상태이므로 반드시 루트 비밀번호를 설정하는 것이 좋습니다.
처음으로 MySQL 루트 비밀번호를 설정하는 방법은 크게 두 가지가 있습니다.
1. mysql_secure_installation 명령어 사용
이 명령어는 기존 루트 비밀번호와 새 비밀번호를 입력하도록 안내할 뿐만 아니라, 테스트 데이터베이스 비활성화 등 추가적인 보안 설정까지 함께 진행해 줍니다.
실행 방법
터미널(Terminal)을 실행하고 아래 명령어를 입력합니다.
mysql_secure_installation
명령어 실행 후 나타나는 질문들에 다음과 같이 답변합니다.
- Change the root password? [Y/n] → y
- New password: → 새로운 MySQL 루트 비밀번호 입력
- Re-enter new password: → 비밀번호 다시 한 번 입력
- Remove anonymous users? [Y/n] → y
- Disallow root login remotely? [Y/n] → y
- Remove test database and access to it? [Y/n] → y
- Reload privilege tables now? [Y/n] → y
참고: 이 과정에서 가장 흔히 발생하는 오류의 원인은 비밀번호가 비어 있는 경우입니다. MySQL 데이터베이스에 접속할 때는 반드시 루트 비밀번호를 지정해야 합니다.
mysqladmin -u root -pROOT-PASSWORD
2. mysqladmin 명령어 사용
셸 프롬프트에서 mysqladmin 명령어를 사용하여 비밀번호를 설정할 수도 있습니다.
- 터미널을 열고 다음 명령어를 입력합니다.
mysqladmin -u root password newpass - 비밀번호를 입력합니다.
만약 아래와 같은 오류 메시지가 출력된다면,
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
비밀번호 복구 절차를 진행해야 합니다. 아래에서 자세히 설명합니다.
주의: 위 명령어에서 'password'라는 단어는 명령어 문법의 일부입니다. 실제 비밀번호로 바꾸지 말고, 새 비밀번호는 'newpass' 자리에 입력하세요.
MySQL 루트 비밀번호를 잊어버렸을 때 재설정하기
Mac에 MySQL을 설치하고 루트 사용자 비밀번호를 설정한 지 오래되었다면, 시간이 지나면서 비밀번호를 쉽게 잊어버릴 수 있습니다. 걱정하지 마세요. MySQL 루트 비밀번호를 잊어버렸거나 기억나지 않더라도, 현재 사용 중인 컴퓨터의 관리자 권한만 있다면 명령줄에서 간단하게 비밀번호를 재설정할 수 있습니다.
비밀번호 재설정 자체는 어렵지 않지만, 사용 중인 MySQL 버전에 따라 절차가 조금씩 다릅니다.
1단계: MySQL 서버 중지
시스템 환경설정(System Preferences)으로 이동하여 MySQL을 선택한 후, Stop MySQL Server 버튼을 클릭합니다.
팁: 터미널을 통해서도 MySQL 서버를 중지할 수 있습니다. 터미널에 다음 명령어를 입력하세요.
service mysql stop
그러면 서버가 중지되었다는 메시지가 출력됩니다.
2단계: 권한 우회 모드(안전 모드)로 서버 시작
터미널에 다음 명령어를 입력하여 권한 검증을 건너뛰는 안전 모드로 서버를 시작합니다.
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
3단계: MySQL 클라이언트로 서버에 접속
새 터미널 창을 열고 아래 명령어를 입력합니다. (반드시 한 줄씩 순서대로 입력하세요.)
mysql -u root
4단계: 새로운 루트 비밀번호 설정
사용 중인 MySQL 버전에 따라 입력해야 하는 명령어가 다릅니다.
- MySQL 5.7.5 이하 버전: 구버전용 명령어를 사용합니다.
- MySQL 5.7.6 이상 버전: 신규 인증 방식에 맞는 명령어를 사용합니다.
5단계: MySQL 서버 종료
다음 명령어로 MySQL 프로세스를 모두 종료합니다.
killall mysqld
6단계: MySQL 서버 재시작 및 테스트
마지막으로 MySQL 서버를 다시 시작한 뒤, 새 비밀번호로 정상적으로 로그인되는지 확인합니다.
핵심 정리
MySQL은 비밀번호 없이도 사용할 수 있지만, 보안상의 이유로 루트 비밀번호를 설정하는 것이 좋습니다. 만약 비밀번호를 잊어버렸더라도 Mac에서 MySQL 루트 비밀번호를 복구하는 것은 그리 어렵지 않습니다. 위 가이드의 단계를 차례대로 따라 하면 누구나 쉽게 해결할 수 있습니다.