2. DB 서버 환경 구축 - MariaDB 설치
DB 서버로 운용할 가상 머신도 PowerShell을 이용해 접속해준다.
[root@localhost ~]# yum search mariadb-server
[root@localhost ~]# yum info MariaDB-server
mariadb-server가 설치되어 있는지 확인해본다. yum update가 안되어있다면 5.5.68 버전일것이다.
[root@localhost ~]# vi /etc/yum.repos.d/MariaDB.repo
위의 내용을 저장해준다.
[root@localhost ~]# yum remove mariadb
[root@localhost ~]# yum info Mariadb-server
[root@localhost ~]# yum install -y MariaDB-server MariaDB-client
구버전을 삭제하고 새버전을 설치해준다.
[root@localhost ~]# systemctl start mariadb.service
[root@localhost ~]# systemctl enable mariadb.service
mariadb 서비스를 활성화한다.
mysql 보안을 설정한다.
[root@localhost ~]# mysql_secure_installation
📌2번째 사진 상에는 원격 접속 허용 거부가 yes로 되어있지만 외부에서 DB에 접근하게 하려면 no를 입력한다.)
웹 서버와 DB 서버를 별도로 구축하기 위해서 방화벽에 mariadb (3306) 포트를 추가한다.
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=3306/tcp
[root@localhost ~]# firewall-cmd --reload
[root@localhost ~]# firewall-cmd --list-all
Wordpress에서 사용할 데이터베이스를 설정해준다.
[root@localhost ~]# mysql -u root -p
패스워드를 입력한 뒤 접속해준다.
CREATE DATABASE wordpress;
CREATE USER adminuser@localhost IDENTIFIED BY '사용하고자 할 암호';
GRANT ALL PRIVILEGES ON wordpress.* TO adminuser@localhost IDENTIFIED BY '사용하고자 할 암호';
FLUSH PRIVILEGES;
exit
게시판에 사용할 데이터베이스를 생성하고 로컬에서 접속 가능한 사용자를 추가해준다.
adminuser가 특정 DB(wordpress)에 접근 가능하도록 권한을 부여한뒤 권한을 적용한다.
원격 호스트에서 접근 가능하도록 사용자 권한을 부여하기
MariaDB 패키지는 기본적으로 127.0.0.1만 접근하도록 허용한다.
mysql 은 사용자에 대해서 원격지에 대한 접속 권한을 부여 해야 원격지에서 접근이 가능하다.
MariaDB에 접속해 다음 명령을 입력한다.
SELECT User, Host FROM mysql.user WHERE Host <> 'localhost';
MariaDB [(none)]> SELECT User, Host FROM mysql.user WHERE Host <> 'localhost';
+------+-----------------------+
| User | Host |
+------+-----------------------+
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost.localdomain |
+------+-----------------------+
3 rows in set (0.00 sec)
현재 접근이 허용된 User와 IP 주소 목록이 나타난다.
여기에 웹 서버 ip가 접근할 수 있도록 접속 권한을 부여해준다.
MariaDB [(none)]> grant all privileges on *.* to 'root'@'%' identified by '사용할 암호';
MariaDB [(none)]> grant all privileges on *.* to 'root'@'192.168.56.107' identified by '사용할 암호';
첫번째 명령줄은 모든 데이터베이스에 root 계정이 모든 IP에서 접근 가능하게 설정하는 것이다.
두번째 명령줄은 모든 데이터베이스에 root 계정이 192.168.56.107에서 접근 가능하도록 하는 것이다.
GRANT all privileges on test.* to 'sysop'@'111.222.333.444' identified by '비번' ;
GRANT all privileges on test.* to 'sysop'@'%' identified by '비번' ;
모든 데이터베이스가 아닌 특정 데이터베이스에만 접근을 허용하고 싶다면 위와 같이 입력한다.
test 데이타베이스에 sysop 계정이 111.222.333.444 IP 에서 접속 가능하게 설정한다.
test 데이타베이스에 sysop 계정이 모든 IP 에서 접속 가능하게 설정한다.
MariaDB [(none)]> grant all privileges on *.* to root@'%' identified by 'dkagh1.';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> SELECT User, Host FROM mysql.user WHERE Host <> 'localhost';
+-----------+-----------------------+
| User | Host |
+-----------+-----------------------+
| adminuser | % |
| root | % |
| root | 127.0.0.1 |
| adminuser | 192.168.56.101 |
| root | 192.168.56.101 |
| root | ::1 |
| root | localhost.localdomain |
+-----------+-----------------------+
DB 서버에서 MariaDB에 접근한 뒤 권한을 확인해준다. 192.168.56.107에 대한 권한을 부여해준다.
모든 설정을 마치면 192.168.56.107에 대해 접근이 허용되어 있음을 확인할 수 있다.
이제 방화벽을 설정해줘야한다.
[root@localhost wordpress]# firewall-cmd --add-port=3306/tcp
[root@localhost wordpress]# firewall-cmd --add-port=3306/tcp --permanent
[root@localhost wordpress]# firewall-cmd --reload
설정이 끝났으니 mariadb를 재시작해준다.
[root@localhost ~]# systemctl restart mariadb
[root@localhost wordpress]# systemctl start mariadb
위와 같이 뜨면 외부 접근이 허용된 것이다.
이제 Web 서버 측에서 원격 접속이 가능한 것을 확인할 수 있다.
여기까지가 DB 설정에 관한 내용이다.
'Project' 카테고리의 다른 글
APM을 이용한 웹 서버 구축 및 Wordpress를 활용한 웹 사이트 (Web, DB, DNS 서버 분리) - 4 (0) | 2022.03.18 |
---|---|
APM을 이용한 웹 서버 구축 및 Wordpress를 활용한 웹 사이트 (Web, DB, DNS 서버 분리) - 3 (0) | 2022.03.15 |
APM을 이용한 웹 서버 구축 및 Wordpress를 활용한 웹 사이트 (Web, DB, DNS 서버 분리) - 1 (0) | 2022.03.15 |
APM을 이용한 웹 서버 구축 및 Wordpress를 활용한 웹 사이트 (2) (0) | 2022.03.15 |
APM을 이용한 웹 서버 구축 및 Wordpress를 활용한 웹 사이트 (1) (0) | 2022.03.15 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!