[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