Update setup_db.sh
This commit is contained in:
145
setup_db.sh
145
setup_db.sh
@ -1,29 +1,140 @@
|
||||
#!/bin/bash
|
||||
# LXC 전용 MariaDB 10.6 설치 및 기본 세팅
|
||||
# Rocky Linux 9 기준, VM1/VM2에서 공용으로 사용
|
||||
# Rocky Linux 9 LXC - MariaDB 설치 및 초기 설정
|
||||
# root 계정에서 실행
|
||||
# 사용자/DB/비밀번호 모두 입력 방식
|
||||
|
||||
# 1. 시스템 업데이트
|
||||
sudo dnf update -y
|
||||
set -e
|
||||
|
||||
# 2. MariaDB 모듈 초기화 및 설치
|
||||
sudo dnf module reset mariadb -y
|
||||
sudo dnf module enable mariadb:10.6 -y
|
||||
sudo dnf install -y mariadb-server
|
||||
echo "=== LXC MariaDB 초기 세팅 시작 ==="
|
||||
|
||||
# 3. 서비스 자동 시작
|
||||
sudo systemctl enable --now mariadb
|
||||
# -------------------------------------------------
|
||||
# 1. 사용자 입력
|
||||
# -------------------------------------------------
|
||||
read -p "Linux 사용자 이름을 입력하세요: " LINUX_USER
|
||||
|
||||
# 4. 테스트용 root 계정 세팅 (root 비밀번호 없이)
|
||||
sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED BY ''; FLUSH PRIVILEGES;"
|
||||
read -s -p "Linux 사용자 비밀번호: " LINUX_PW
|
||||
echo ""
|
||||
read -s -p "Linux 사용자 비밀번호 확인: " LINUX_PW_CONFIRM
|
||||
echo ""
|
||||
|
||||
# 5. 외부 접속 허용 설정 (VM1/VM2에서 접근 가능)
|
||||
# 테스트 환경용, root는 비밀번호 없이 접근 가능
|
||||
sudo bash -c "cat > /etc/my.cnf.d/50-server.cnf" <<EOF
|
||||
if [ "$LINUX_PW" != "$LINUX_PW_CONFIRM" ]; then
|
||||
echo "Linux 사용자 비밀번호가 일치하지 않습니다."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
read -p "MariaDB DB 이름을 입력하세요: " DB_NAME
|
||||
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
|
||||
|
||||
# -------------------------------------------------
|
||||
# 2. 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 생성 완료"
|
||||
else
|
||||
echo "Linux 사용자 $LINUX_USER 이미 존재"
|
||||
fi
|
||||
|
||||
# sudo 권한
|
||||
dnf install -y sudo
|
||||
usermod -aG wheel "$LINUX_USER"
|
||||
|
||||
# -------------------------------------------------
|
||||
# 3. 시스템 업데이트
|
||||
# -------------------------------------------------
|
||||
dnf update -y
|
||||
|
||||
# -------------------------------------------------
|
||||
# 4. vim 설치 + visual mode 비활성화
|
||||
# -------------------------------------------------
|
||||
dnf install -y vim
|
||||
|
||||
USER_HOME="/home/$LINUX_USER"
|
||||
|
||||
cat > "$USER_HOME/.vimrc" <<EOF
|
||||
set mouse=
|
||||
EOF
|
||||
|
||||
chown "$LINUX_USER:$LINUX_USER" "$USER_HOME/.vimrc"
|
||||
|
||||
# -------------------------------------------------
|
||||
# 5. bashrc 설정 (VM과 동일)
|
||||
# -------------------------------------------------
|
||||
cat >> "$USER_HOME/.bashrc" <<'EOF'
|
||||
|
||||
# --- Bash 가독성 설정 ---
|
||||
export PS1='[\u@\h \W]\$ '
|
||||
alias ll='ls -alF --color=auto'
|
||||
alias la='ls -A --color=auto'
|
||||
alias l='ls -CF --color=auto'
|
||||
export HISTCONTROL=ignoreboth
|
||||
EOF
|
||||
|
||||
chown "$LINUX_USER:$LINUX_USER" "$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
|
||||
|
||||
sudo systemctl restart mariadb
|
||||
systemctl restart mariadb
|
||||
|
||||
echo "=== LXC MariaDB 10.6 설치 완료 ==="
|
||||
# -------------------------------------------------
|
||||
# 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 ""
|
||||
echo "Linux 사용자 : $LINUX_USER (sudo 가능)"
|
||||
echo "DB 이름 : $DB_NAME"
|
||||
echo "DB 사용자 : $DB_USER"
|
||||
echo ""
|
||||
echo "VM 접속 예시:"
|
||||
echo " mysql -h <LXC_IP> -u $DB_USER -p $DB_NAME"
|
||||
|
||||
Reference in New Issue
Block a user