mysqld_safe 명령어 없을 때 root 비밀번호 초기화 방법

mysqld_safe 명령어 없을 때 root 비밀번호 초기화 방법
mysqld_safe 명령어 없을 때 root 비밀번호 초기화 방법 1

 

CentOS에서 mysql root 비밀번호를 잃어버릴 때가 있습니다. 그럴 경우 일반적으로 mysqld_safe 명령어를 이용하여 root 비밀번호를 변경합니다. 그러나 상위버전의 mysql의 경우 mysqld_safe 파일이 없습니다. 그러므로 mysqld_safe 명령이 존재하지 않을 때 root 비밀번호를 변경하는 방법에 대해서 알아보겠습니다.

1. SSH를 이용하여 root 계정으로 서버에 로그인을 합니다.

 

2. mysqld 서버를 중지합니다.

[root@localhost /] systemctl stop mysqld


3. mysql 서버에 --skip-grant-tables 옵션을 설정해 줍니다.
[root@localhost /] systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

 

4. mysqld 서버를 시작합니다.

[root@localhost /] systemctl start mysqld

 

5. root 사용자로 mysql 서버에 접속을 합니다.

[root@localhost /] mysql -u root -p

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 259
Server version: 5.7.34 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

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>

 

6. root 비밀번호를 변경합니다.

mysql> update user set authentication_string=PASSWORD('비밀번호') where user='root';

 

7. mysql 접속을 빠져나온 후 mysqld 서버를 중지합니다.

[root@localhost /] systemctl stop mysqld

 

8. mysql 서버에 unset-environment MYSQLD_OPTS 옵션을 설정해 줍니다.

[root@localhost /] systemctl unset-environment MYSQLD_OPTS

 

9. mysqld 서버를 시작합니다.

[root@localhost /] systemctl start mysqld

 

10. 이제 다시 mysql 접속을 시도해보면, 변경하였던 비밀번호로 접속이 가능합니다.

# 서버환경
Centos 7.9
PHP 8.0
MySQL 5.7.34