[sql] MySQL root 패스워드 변경하기 - mysql_secure_installation

mysql_secure_installation으로 변경

MySQL 보안 설정 스크립트인 mysql_secure_installation을 사용해서 MySQL 패스워드를 변경할 수 있습니다. mysql_secure_installation을 사용하면 test 데이터 베이스 삭제, 익명 사용자 삭제, 루트 계정 원격 접속 제한 등의 보안 설정이 함께 이루어집니다.

sudo mysql_secure_installation

mysql_secure_installation 을 실행하면 다음처럼 기존 패스워드를 묻고 새 패스워드를 입력하는 프롬프트가 표시됩니다. root 계정 패스워드만 변경하려면 패스워드 변경 후 Ctrl+C를 눌러서 이후 보안 설정 과정을 취소하고 빠져나갈 수 있습니다.

ubuntu@ubuntu:~$ sudo mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root:
The 'validate_password' component is installed on the server.
The subsequent steps will run with the existing configuration
of the component.
Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y

New password: **********
Re-enter new password: **********

Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : ^C

MySQL 설치 직후에는 root 계정 패스워드가 설정되어 있지 않기 때문에 root 계정 패스워드 변경 여부 및 패스워드 변경 프롬프트가 표시되지 않습니다. 이럴때는 쿼리문을 사용하는 다음 방법으로 MySQL root 패스워드를 변경해야 합니다.

MySQL에서 파생된 마리아DB에는 mariadb_secure_installation 스크립트가 있습니다.

쿼리문으로 root 패스워드 설정

다음 순서로 커맨드를 입력해서 MySQL의 root 계정 패스워드를 변경할 수 있습니다.

먼저 MySQL 커맨드 콘솔로 들어가야 합니다.

sudo mysql -u root mysql

패스워드가 없는 초기 설치 후에만 패스워드 없이 로그인이 가능합니다. 패스워드가 설정된 경우에는 다음처럼 -p 옵션을 사용해서 패스워드 입력을 해야 합니다.

ubuntu@ubuntu:~$ sudo mysql -u root mysql -p
Enter password: **********
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.36-0ubuntu0.22.04.1 (Ubuntu)

Copyright (c) 2000, 2024, 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>

다음 쿼리문으로 root@localhost 계정의 패스워드를 새로 설정합니다. "Query OK"가 나오면 변경된 것입니다.

mysql> alter user 'root'@'localhost' identified by '새패스워드';
Query OK, 0 rows affected (0.02 sec)

MySQL 5.7 미만에서는 다음 쿼리문을 실행해서 변경해야 합니다.

mysql> set password for 'root'@'localhost' = PASSWORD('새패스워드');

MySQL 콘솔은 "exit" 커맨드로 빠져나갈 수 있습니다.

mysql> exit