$ wget https://dev.mysql.com/get/mysql-apt-config_0.8.23-1_all.deb
$ sudo dpkg -i mysql-apt-config_0.8.23-1_all.deb
Which MySQL product to you wish to configure? Ok
$ sudo apt-get update
$ sudo apt-get install mysql-server
Enter root password: 비밀번호 입력
Re-enter root password: 비밀번호 입력
Select default authentication plugin: Use Strong Password Encryption (RECOMMENDED)
$ sudo systemctl start mysql
$ sudo systemctl enable mysql
$ systemctl status mysql
그리고 MySQL에 접속해봅니다.
root 계정의 임시 비밀번호를 확인한 후, MySQL에 접속합니다.
$ sudo grep 'temporary password' /var/log/mysqld.log
2022-10-05T06:33:51.116320Z 1 [Note] A temporary password is generated for root@localhost: y(>j2pun:AN/
$ mysql -u root -p
설정한 비밀번호를 입력하여 MySQL에 접속합니다.
$ mysql -u root -p
(3) MySQL 기본 보안 설정하기
mysql_secure_installation을 통해 root 비밀번호 변경과 기본 보안 설정을 합니다.
$ sudo mysql_secure_installation
=== root 계정의 임시 비밀번호 입력 ===
Enter password for user root:
=== root 계정의 새 비밀번호 입력 ===
New password:
Re-enter new password:
=== root 계정의 비밀번호 변경 여부 ===
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
=== 익명의 사용자 삭제 여부 ===
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
=== 원격 접속 차단 여부 ===
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n
=== test DB 및 접속 정보 삭제 여부 ===
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
=== 현재 설정한 값들의 적용 여부 ===
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
$ sudo mysql_secure_installation
=== root 계정의 비밀번호 입력 ===
Enter password for user root:
=== 비밀번호 복잡성 설정 여부 ===
Press y|Y for Yes, any other key for No: n
=== root 계정의 비밀번호 변경 여부 ===
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
=== 익명의 사용자 삭제 여부 ===
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
=== 원격 접속 차단 여부 ===
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n
=== test DB 및 접속 정보 삭제 여부 ===
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
=== 현재 설정한 값들의 적용 여부 ===
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
(4) PHP와 연동 확인하기
새로 설정한 비밀번호로 MySQL에 접속한 후, test 데이터베이스와 test 사용자를 생성합니다.
$ mysql -u root -p
mysql> create database test;
mysql> create user 'test'@'%' identified by '비밀번호';
mysql> grant all privileges on test.* to 'test'@'%';
그리고 PHP가 test 데이터베이스에 잘 접속하는지 확인하는 test.php 파일을 /var/www/html 디렉터리에 생성합니다.
초기에는 비밀번호가 없기 때문에 비밀번호 없이 root 권한으로 MariaDB에 접속합니다.
$ sudo mysql -u root
(3) MariaDB 기본 보안 설정하기
mysql_secure_installation을 통해 root 비밀번호 설정과 기본 보안 설정을 합니다.
$ sudo mysql_secure_installation
=== 현재 root 계정의 비밀번호가 없기 때문에 엔터 입력 ===
Enter current password for root (enter for none):
=== root 계정의 비밀번호 설정 ===
Set root password? [Y/n] y
New password:
Re-enter new password:
=== 익명의 사용자 삭제 여부 ===
Remove anonymous users? [Y/n] y
=== 원격 접속 차단 여부 ===
Disallow root login remotely? [Y/n] n
=== test DB 및 접속 정보 삭제 여부 ===
Remove test database and access to it? [Y/n] y
=== 현재 설정한 값들의 적용 여부 ===
Reload privilege tables now? [Y/n] y
(4) PHP와 연동 확인하기
새로 설정한 비밀번호로 MariaDB에 접속한 후, test 데이터베이스와 test 사용자를 생성합니다.
$ mysql -u root -p
MariaDB [(none)]> create database test;
MariaDB [(none)]> create user 'test'@'%' identified by '비밀번호';
MariaDB [(none)]> grant all privileges on test.* to 'test'@'%';
그리고 PHP가 test 데이터베이스에 잘 접속하는지 확인하는 test.php 파일을 /var/www/html 디렉터리에 생성합니다.