웹사이트 검색

MySQL 8.0에서 루트 비밀번호를 재설정하는 방법


불행하게도 MySQL 루트 비밀번호를 잊어버리거나 분실한 경우 어떻게든 비밀번호를 복구할 수 있는 방법이 필요합니다. 우리가 알아야 할 것은 비밀번호가 사용자 테이블에 저장되어 있다는 것입니다. 이는 MySQL 인증을 우회하여 비밀번호 기록을 업데이트할 수 있는 방법을 찾아야 함을 의미합니다.

운 좋게도 쉽게 달성할 수 있는 방법이 있으며 이 튜토리얼에서는 MySQL 8.0 버전에서 루트 비밀번호를 복구하거나 재설정하는 과정을 안내할 것입니다.

MySQL 문서에 따르면 루트 MySQL 비밀번호를 재설정하는 방법에는 두 가지가 있습니다. 우리는 두 가지를 모두 검토할 것입니다.

–init-file을 사용하여 MySQL 루트 비밀번호 재설정

루트 비밀번호를 재설정하는 방법 중 하나는 로컬 파일을 생성한 다음 표시된 대로 --init-file 옵션을 사용하여 MySQL 서비스를 시작하는 것입니다.

vim /home/user/init-file.txt

mysql 사용자가 파일을 읽을 수 있는지 확인하는 것이 중요합니다. 해당 파일 내에 다음을 붙여넣습니다.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

위의 "new_password"를 사용하려는 비밀번호로 변경하세요.

이제 MySQL 서비스가 중지되었는지 확인하십시오. 다음을 수행할 수 있습니다.

systemctl stop mysqld.service     # for distros using systemd 
/etc/init.d/mysqld stop           # for distros using init

그런 다음 다음을 실행합니다.

mysqld --user=mysql --init-file=/home/user/init-file.txt --console

그러면 MySQL 서비스가 시작되고 프로세스 중에 생성된 init 파일이 실행되어 루트 사용자의 비밀번호가 업데이트됩니다. 비밀번호를 재설정한 후에는 반드시 파일을 삭제하세요.

반드시 서버를 종료하신 후 정상적으로 시작하시기 바랍니다.

systemctl stop mysqld.service        # for distros using systemd 
systemctl restart mysqld.service     # for distros using systemd 

/etc/init.d/mysqld stop              # for distros using init
/etc/init.d/mysqld restart           # for distros using init

이제 새 비밀번호를 사용하여 루트로 MySQL 서버에 연결할 수 있습니다.

mysql -u root -p

–skip-grant-tables를 사용하여 MySQL 루트 비밀번호 재설정

두 번째 옵션은 --skip-grant-tables 옵션을 사용하여 MySQL 서비스를 시작하는 것입니다. 서비스가 그런 식으로 시작되는 동안에는 모든 사용자가 비밀번호 없이 연결할 수 있으므로 보안 수준이 낮습니다.

서버가 --skip-grant-tables 시작되면 --skip-networking 옵션이 자동으로 활성화되므로 원격 연결을 사용할 수 없습니다.

먼저 MySQL 서비스가 중지되었는지 확인하세요.

systemctl stop mysqld.service     # for distros using systemd 
/etc/init.d/mysqld stop           # for distros using init

그런 다음 다음 옵션을 사용하여 서비스를 시작하십시오.

mysqld --skip-grant-tables --user=mysql &

그런 다음 간단히 실행하여 mysql 서버에 연결할 수 있습니다.

mysql

--skip-grant-tables 옵션으로 서비스를 시작하면 계정 관리가 비활성화되므로 승인을 다시 로드해야 합니다. 이렇게 하면 나중에 비밀번호를 변경할 수 있습니다.

FLUSH PRIVILEGES;

이제 다음 쿼리를 실행하여 비밀번호를 업데이트할 수 있습니다. “new_password”를 사용하려는 실제 비밀번호로 변경하세요.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';

이제 MySQL 서버를 중지하고 정상적으로 시작하십시오.

systemctl stop mysqld.service        # for distros using systemd 
systemctl restart mysqld.service     # for distros using systemd 

/etc/init.d/mysqld stop              # for distros using init
/etc/init.d/mysqld restart           # for distros using init

새로운 비밀번호로 접속하실 수 있습니다.

mysql -u root -p

다음 MySQL 관련 기사를 읽고 싶을 수도 있습니다.

  1. CentOS, RHEL 및 Fedora에 MySQL 8을 설치하는 방법
  2. 15가지 유용한 MySQL 성능 조정 및 최적화 팁
  3. 12가지 Linux용 MySQL 보안 사례
  4. MySQL 성능을 모니터링하는 4가지 유용한 명령줄 도구
  5. MySQL 데이터베이스 관리 명령
결론

이 기사에서는 MySQL 8.0 서버의 잃어버린 루트 비밀번호를 재설정하는 방법을 배웠습니다. 과정이 쉬웠기를 바랍니다.