Files
cafe24-testserver/setup_db.sh
2025-12-23 11:33:23 +09:00

138 lines
4.1 KiB
Bash

#!/bin/bash
# Rocky Linux 9 LXC - MariaDB 설치 및 초기 설정
# root 계정에서 실행
# Linux / DB 계정 통합 여부 선택 가능
# vimrc / bashrc는 git에서 다운로드
set -e
DOTFILES_BASE_URL="https://git.siane.kr/firstgarden/cafe24-testserver/main"
echo "=== LXC MariaDB 초기 세팅 시작 ==="
# -------------------------------------------------
# 0. Timezone 설정
# -------------------------------------------------
timedatectl set-timezone Asia/Seoul
echo "Timezone set to Asia/Seoul"
# -------------------------------------------------
# 1. 필수 패키지 사전 설치
# -------------------------------------------------
dnf update -y
dnf install -y sudo vim wget curl
# -------------------------------------------------
# 2. Linux 사용자 정보 입력
# -------------------------------------------------
read -p "Linux 사용자 이름: " LINUX_USER
read -s -p "Linux 사용자 비밀번호: " LINUX_PW
echo ""
read -s -p "Linux 사용자 비밀번호 확인: " LINUX_PW_CONFIRM
echo ""
if [[ "$LINUX_PW" != "$LINUX_PW_CONFIRM" ]]; then
echo "Linux 사용자 비밀번호가 일치하지 않습니다."
exit 1
fi
# -------------------------------------------------
# 3. MariaDB 계정을 동일하게 사용할지 여부
# -------------------------------------------------
read -p "MariaDB 계정을 Linux 계정과 동일하게 사용할까요? (Y/n): " SAME_ACCOUNT
SAME_ACCOUNT=${SAME_ACCOUNT:-Y}
if [[ "$SAME_ACCOUNT" =~ ^[Yy]$ ]]; then
DB_USER="$LINUX_USER"
DB_PW="$LINUX_PW"
echo "→ DB 사용자/비밀번호를 Linux 계정과 동일하게 사용합니다."
else
read -p "MariaDB 사용자 이름: " DB_USER
read -s -p "MariaDB 사용자 비밀번호: " DB_PW
echo ""
read -s -p "MariaDB 사용자 비밀번호 확인: " DB_PW_CONFIRM
echo ""
if [[ "$DB_PW" != "$DB_PW_CONFIRM" ]]; then
echo "MariaDB 비밀번호가 일치하지 않습니다."
exit 1
fi
fi
read -p "MariaDB DB 이름: " DB_NAME
# -------------------------------------------------
# 4. Linux 사용자 생성
# -------------------------------------------------
if ! id "$LINUX_USER" &>/dev/null; then
useradd -m -s /bin/bash "$LINUX_USER"
echo "$LINUX_USER:$LINUX_PW" | chpasswd
echo "Linux 사용자 $LINUX_USER 생성 완료"
fi
usermod -aG wheel "$LINUX_USER"
USER_HOME="/home/$LINUX_USER"
# -------------------------------------------------
# 5. vim / bash 설정 (git에서 다운로드)
# -------------------------------------------------
wget -qO "$USER_HOME/.vimrc" "$DOTFILES_BASE_URL/vimrc"
wget -qO "$USER_HOME/.bashrc" "$DOTFILES_BASE_URL/bashrc"
chown "$LINUX_USER:$LINUX_USER" "$USER_HOME/.vimrc" "$USER_HOME/.bashrc"
# -------------------------------------------------
# 6. MariaDB 10.6 설치
# -------------------------------------------------
dnf module reset mariadb -y
dnf module enable mariadb:10.6 -y
dnf install -y mariadb-server
systemctl enable --now mariadb
# -------------------------------------------------
# 7. MariaDB 외부 접속 허용
# -------------------------------------------------
cat > /etc/my.cnf.d/50-server.cnf <<EOF
[mysqld]
bind-address = 0.0.0.0
skip-name-resolve
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
EOF
systemctl restart mariadb
# -------------------------------------------------
# 8. DB / 사용자 생성
# -------------------------------------------------
mysql <<EOF
CREATE DATABASE IF NOT EXISTS \`${DB_NAME}\`
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
CREATE USER IF NOT EXISTS '${DB_USER}'@'%' IDENTIFIED BY '${DB_PW}';
GRANT ALL PRIVILEGES ON \`${DB_NAME}\`.* TO '${DB_USER}'@'%';
FLUSH PRIVILEGES;
EOF
# -------------------------------------------------
# 9. 기본 보안 정리 (테스트 기준)
# -------------------------------------------------
mysql <<EOF
DELETE FROM mysql.user WHERE User='';
DROP DATABASE IF EXISTS test;
FLUSH PRIVILEGES;
EOF
echo ""
echo "=== LXC MariaDB 설정 완료 ==="
echo "Linux 사용자 : $LINUX_USER (sudo 가능)"
echo "DB 이름 : $DB_NAME"
echo "DB 사용자 : $DB_USER"
echo ""
echo "접속 예시:"
echo "mysql -h <LXC_IP> -u $DB_USER -p $DB_NAME"