## 시스템의 패키지 목록 업데이트
$ sudo apt update
## 업데이트된 패키지 목록을 기반으로 시스템에 설치된 패키지들 최신 버전으로 업그레이드
$ sudo apt upgrade
## MariaDB 서버 설치
$ sudo apt install mariadb-server
## MariaDB 클라이언트 설치
$ sudo apt install mariadb-client
## secure 설정하기
$ sudo mysql_secure_installation
## 1. root 계정 패스워드 설정: root 계정에 대한 비밀번호 설정 및 변경
## 2. 익명 사용자 제거: 기본적으로 제공되는 익명 사용자 접근 방지(y)
## 3. root 계정 원격 접속 금지: 루트 계정 원격 로그인 방지(y)
## 4. 테스트 데이터베이스 제거: 테스트 목적의 테스트 데이터베이스 제거를 통해 보안 취약점 제거(y)
## 5. 변경 사항 적용: 모든 변경 사항 적용을 위한 MySQL 서버 다시 시작(y)

## root 계정 접속
$ sudo mariadb -u root -p
## root 계정 비밀번호 입력
root 계정 접속 이후
**(이 작업은 외부 접속이 가능하다고 외부에서 root 계정에 접속해서 할 수는 없음!)**
**(반드시 해당 가상머신의 터미널(local)에서 진행할 것!)**
-- 계정 생성 후 데이터베이스 활용
-- 1) 새로운 master 계정 만들기
CREATE USER 'master'@'%' IDENTIFIED BY 'master'; -- 'localhost' 대신 '%'를 쓰면 외부 ip로 접속 가능하다.
-- 현재 존재하는 데이터베이스 확인
SHOW databases;
-- mysql 데이터베이스로 계정 정보 확인하기
USE mysql; -- 기본 적으로 제공되는 mysql database
SELECT * FROM user; -- mysql database에서 user를 확인해 계정이 추가된 것을 확인한다.
-- 2) 계정에 권한 부여
-- master 계정의 권한 확인하기
SHOW GRANTS FOR 'master'@'%';
-- 왼쪽 Navigator를 새로고침해서 masterdbdatabase(schema)가 추가된 것을 확인한다.
-- MySQL 또는 MariaDB는 개념적으로 database와 schema를 구분하지 않는다.
-- (CREATE DATABASE와 CREATE SCHEMA가 같은 개념이다.)
GRANT ALL PRIVILEGES ON *.* TO 'master'@'%'; -- root의 모든 database에 대한 모든 권한 부여
-- 권한 변경 사항 적용(메모리의 권한 테이블에 적용된 것을 다시 불러와 시스템 전체에 적용)
flush privileges;
-- master 계정의 바뀐 권한 확인하기
SHOW GRANTS FOR 'master'@'%';
-- 계정 생성 후 데이터베이스 활용
-- 1) 새로운 slave 계정 만들기
CREATE USER 'slave'@'%' IDENTIFIED BY 'slave'; -- 'localhost' 대신 '%'를 쓰면 외부 ip로 접속 가능하다.
-- 현재 존재하는 데이터베이스 확인
SHOW databases;
-- mysql 데이터베이스로 계정 정보 확인하기
USE mysql; -- 기본 적으로 제공되는 mysql database
SELECT * FROM user; -- mysql database에서 user를 확인해 계정이 추가된 것을 확인한다.
-- slave 계정의 권한 확인하기
SHOW GRANTS FOR 'slave'@'%';
-- 왼쪽 Navigator를 새로고침해서 masterdbdatabase(schema)가 추가된 것을 확인한다.
-- MySQL 또는 MariaDB는 개념적으로 database와 schema를 구분하지 않는다.
-- (CREATE DATABASE와 CREATE SCHEMA가 같은 개념이다.)
GRANT ALL PRIVILEGES ON *.* TO 'slave'@'%'; -- root의 모든 database에 대한 모든 권한 부여
-- 권한 변경 사항 적용(메모리의 권한 테이블에 적용된 것을 다시 불러와 시스템 전체에 적용)
flush privileges;
-- slave 계정의 바뀐 권한 확인하기
SHOW GRANTS FOR 'slave'@'%';
-- 현재 계정 확인(root도 Host가 %가c아님을 확인)
SELECT Host,User FROM mysql.user;
-- root가 원격 접속 가능하도록 권한 부여
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mariadb';
-- 확인
SELECT Host,User FROM mysql.user;
💡 윈도우에 띄워진 가상 머신을 접속하고 해당 DB 서버를 활용
virtualbox 네트워크 설정에서 NAT → 어댑터에 브리지로 변경

가상환경 구성




## ifconfig 명령어를 통한 ip 주소 확인을 위한 net-tools 패키지 설
$ sudo apt-get install net-tools
## window에서 접근을 위한 ip확인(inet 주소 확인)
$ ifconfig
## mariadb 서버 접근을 위한 3306 포트 방화벽 풀기
$ sudo ufw allow 3306/tcp
## 만약 vim을 이전에 설치 하지 않은 slave의 경우라면 vim설치부터
#$ sudo apt install vim
$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

$ sudo service mysqld restart