Vagrant 로 Rocky Linux 에 MariaDB 를 설치해보겠습니다.
이번에는 VM 3개에 MariaDB 를 설치하여 Multi-Tenant 를 구성해보겠습니다.
Multi-Tenant 는 단일 인스턴스가 여러 고객에게 서비스를 제공하는 아키텍처를 말합니다.
이제 MariaDB가 각기 다른 테넌트의 데이터베이스를 처리하도록 설정되었습니다. 이를 통해 여러 애플리케이션이 각기 다른 데이터베이스에 연결하여 독립적으로 작업할 수 있습니다. 예를 들어, 애플리케이션은 다음과 같이 각 MariaDB 인스턴스에 연결할 수 있습니다.
테넌트 1: mariadb1:3306
테넌트 2: mariadb2:3307
테넌트 3: mariadb3:3308
각 애플리케이션은 테넌트마다 고유한 데이터베이스에 연결하여 데이터를 처리하게 됩니다.
ChatGPT 에 사용한 프롬프트입니다
vagrant 로 virtualbox 에 rocky linux 9 에 mariadb 를 설치하는 VM 3개를 만들어주세요.
VM 의 IP 는 192.168.56.20, 192.168.56.21, 192.168.56.22 로 설정하고
VM 이름은 maridb20, maridb21, maridb22 으로 설치하는 방법을 단계별로 알려주세요.
mariadb 는 password vagrant 로 접속 가능하게 해주세요.
외부에서 3306 포트로 접속이 가능하게 해주세요.
sample db 도 만들고 sample table 도 생성하고 sample data 도 추가해주세요.
1) Vagrant 설치
Vagrant 1.1편-Vagrant설치 를 참고해주세요.
2) 프로젝트 폴더 생성
프로젝트 폴더를 만들어주어야 합니다.
mkdir vagrant-rocky-mariadb
cd vagrant-rocky-mariadb
3) Vagrantfile 생성
생성된 Vagrantfile 입니다.
다음 파일은 아래 git 에서 다운받을 수 있습니다.
git clone git@github.com:jbpark/jbDeskExample.git
cd jbDeskExample/vagrant/ch1.3
프로젝트 폴더에 아래 Vagrnatfile 을 생성해주세요.
Vagrantfile
Vagrant.configure("2") do |config|
nodes = [
{ :name => "mariadb20", :ip => "192.168.56.20" },
{ :name => "mariadb21", :ip => "192.168.56.21" },
{ :name => "mariadb22", :ip => "192.168.56.22" }
]
nodes.each do |node|
config.vm.define node[:name] do |node_config|
node_config.vm.box = "rockylinux/9"
node_config.vm.hostname = node[:name]
node_config.vm.network "private_network", ip: node[:ip]
node_config.vm.provider "virtualbox" do |vb|
vb.name = node[:name]
vb.memory = 1024
vb.cpus = 1
end
node_config.vm.network "forwarded_port", guest: 3306, host: 3306, auto_correct: true
node_config.vm.provision "shell", inline: <<-SHELL
dnf install -y mariadb-server
systemctl enable mariadb
systemctl start mariadb
echo "[+] Configuring MariaDB to allow remote access..."
# bind-address=0.0.0.0 설정
sed -i 's/^bind-address=127.0.0.1/bind-address=0.0.0.0/' /etc/my.cnf.d/mariadb-server.cnf || \
echo -e "[mysqld]\nbind-address=0.0.0.0" >> /etc/my.cnf.d/mariadb-server.cnf
systemctl restart mariadb
echo "[+] Creating remote-accessible root user..."
mariadb -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'vagrant' WITH GRANT OPTION;"
mariadb -e "FLUSH PRIVILEGES;"
echo "[+] Creating sample DB, tables, and inserting sample data..."
mariadb -u root <<EOF
CREATE DATABASE IF NOT EXISTS sample;
USE sample;
CREATE TABLE IF NOT EXISTS users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100),
email VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS products (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100),
price DECIMAL(10, 2),
stock INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO users (name, email) VALUES
('Alice', 'alice@example.com'),
('Bob', 'bob@example.com'),
('Charlie', 'charlie@example.com');
INSERT INTO products (name, price, stock) VALUES
('Laptop', 1200.00, 10),
('Smartphone', 800.00, 25),
('Headphones', 150.00, 50);
EOF
echo "[+] Opening firewall for MariaDB..."
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
SHELL
end
end
end
4) VM 생성 및 구동
vagrant up
5) VM 접속
각 VM 에는 아래와 같이 접속이 가능합니다.
vagrant ssh mariadb20
vagrant ssh mariadb21
vagrant ssh mariadb22
6) MariaDb 접속
Dbeaver 로는 Database Client 프로그램으로 접속해보겠습니다.
✅ 1. DBeaver 다운로드 및 설치
- 공식 홈페이지 방문
👉 https://dbeaver.io/download/ - OS에 맞는 설치파일 다운로드
- Windows: DBeaver Community Edition Windows Installer
- Mac: .dmg
- Linux: .deb 또는 .rpm
- 설치 프로그램 실행 후, 기본 설정으로 설치 진행
✅ 2. MariaDB 접속 정보 확인
MariaDB 서버가 로컬 Vagrant VM에서 구동 중이라면 다음과 같이 확인하세요:
항목 | 값 |
Host | 192.168.56.20 또는 192.168.56.21 또는 192.168.56.22 |
Port | 3306 |
User | root |
Password | vagrant |
Database | sample |
※ vagrantfile에서 root 사용자의 비밀번호를 vagrant로 설정한 경우입니다.
✅ 3. DBeaver에서 MariaDB 접속
- DBeaver 실행 후 왼쪽 상단 [Database] → [New Database Connection] 클릭
또는 단축키 Ctrl + N - 검색창에 "MariaDB" 입력 → MariaDB 선택 → Next
- 다음 정보를 입력:
-
yaml복사편집Host: 127.0.0.1 Port: 3306 Database: sample Username: root Password: vagrant
- [Test Connection] 버튼 클릭 → 정상 연결되면 성공
- Finish 버튼을 눌러 접속 완료
✅ 4. 접속 확인
- 왼쪽 탐색창에서 sample DB 아래 tables 를 확장하면
users, products 테이블을 볼 수 있습니다. - 마우스 우클릭 → View Data → View All Rows 선택 시 데이터 조회 가능
'유틸리티 > Vagrant' 카테고리의 다른 글
Vagrant 1.2편-Rocky Linux 에 Oracle 설치 (2) | 2025.03.31 |
---|---|
Vagrant 1.1편-Vagrant설치 (1) | 2025.03.30 |