MySQL/MariaDB root 비밀번호 초기화 방법

mysqld_safe 명령어 없이 MySQL root 비밀번호를 초기화하는 방법을 알려드립니다. systemd 환경 변수를 설정하고 MySQL 서비스를 재시작하는 과정을 따라하세요.
인프라코디
MySQL/MariaDB root 비밀번호 초기화 방법

[root@infracody ~]# mysqld_safe -bash: mysqld_safe: command not found

MySQL 또는 MairaDB에서 root 계정의 비밀번호를 분실하거나 초기화해야 할 때 mysqld_safe 명령어를 찾을 수 없어서 발생한 오류이며, mysqld_safe 명령어를 실행할 수 없을 때 root 계정의 비밀번호 초기화 방법에 대해 알아봅니다.

리눅스 서버에서 MySQL의 root 계정 비밀번호를 잃어버리거나 모를 경우 지금까지 mysqld_safe 명령어를 사용하여 root 비밀번호를 변경해왔습니다. 사용해왔던 MySQL 5.7.24 버전에서는 mysqld_safe 유틸리티를 제공했지만, 새로 설치한 MySQL 5.7.36 버전의 mysql-community-server RPM 패키지에는 mysqld_safe 유틸리티가 포함되어 있지 않기 때문에 명령어를 찾을 수 없다는 에러가 출력되며 명령이 실행되지 않았습니다.

systemd를 사용하고 mysqld_safe 명령어 파일이 존재하지 않을 경우 mysqld_safe --skip-grant-table & 명령어로 안전 모드를 실행하는 것이 아니라 systemd의 mysqld 서비스에 환경 변수를 추가해서 안전 모드로 실행할 수 있었습니다. MySQL 8 이상의 버전도 마찬가지로 mysql_safe 유틸리티를 지원하지 않으며, mysqld_safe 명령어가 존재하지 않을 때 root 비밀번호 초기화 과정에 대해 알아봅니다.

환경 정보

  • 운영 체제(OS) : CentOS Linux release 7.9.2009 (Core)
  • 실행 계정 : root
  • MySQL 설치 버전 : mysql-community-server-5.7.36-1.el7.x86_64

SSH Client 프로그램을 사용해서 root 계정으로 접속합니다.

PuTTY와 Xsheel과 같은 SSH Client 프로그램을 실행해서 서버에 root 계정으로 접속합니다. 일반 계정으로 접속 시 su, sudo 명령으로 root 권한을 획득합니다.

MySQL 서비스를 종료합니다.

systemctl stop mysqld

MySQL 서비스에 –skip-grant-tables 환경 변수를 추가합니다.

CentOS 7 버전부터 systemd를 사용해서 서비스를 관리하기 때문에 아래와 같이 systemctl 명령으로 MySQL 환경 변수를 추가하여 safe 모드로 MySQL 서비스를 실행합니다.

systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

MySQL 서비스를 시작합니다.

systemctl start mysqld

MySQL Shell에 root 계정으로 로그인합니다.

mysql -uroot

MySQL root 계정 비밀번호를 설정합니다.

아래 쿼리를 실행하여 root 계정 비밀번호를 설정합니다.

FLUSH PRIVILEGES; 명령으로 권한 설정을 먼저 불러와야 비밀번호를 업데이트할 수 있습니다.

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD';
FLUSH PRIVILEGES;

MySQL Shell을 종료합니다.

quit

MySQL 서비스를 중지합니다.

systemctl stop mysqld

MySQL 환경 변수를 초기화합니다.

systemctl unset-environment MYSQLD_OPTS

MySQL 서비스를 시작합니다.

systemctl start mysqld

MySQL 서버에 root 계정으로 접속합니다.

mysql -uroot -p
[root@infracody ~]# mysql -uroot -p Enter password: PASSWORD

마치며

MySQL 서버의 root 계정 비밀번호를 잊어버리거나 모를 경우 root 계정의 비밀번호를 업데이트하는 방법에 대해 알아보았습니다. 위 실습 내용을 따라 하면 쉽게 MySQL root 계정 비밀번호를 초기화할 수 있습니다.

인프라코디
서버, 네트워크, 보안 등 IT 인프라 관리를 하는 시스템 엔지니어로 일하고 있으며, IT 기술 정보 및 일상 정보를 기록하는 블로그를 운영하고 있습니다. 글을 복사하거나 공유 시 게시하신 글에 출처를 남겨주세요.

- 블로그 : www.infracody.com

이 글이 유익했나요? 댓글로 소중한 의견을 남겨주시거나 커피 한 잔의 선물은 큰 힘이 됩니다.
댓글