Add MariaDB full removal option and change default values (N for most prompts, Y for same account)

This commit is contained in:
2025-12-23 13:07:14 +09:00
parent 638546a554
commit aaf49c681b

View File

@ -35,37 +35,57 @@ cleanup() {
EXIT_CODE=$?
if [ $EXIT_CODE -ne 0 ]; then
echo ""
echo " MariaDB 설정 중 에러 발생 ($EXIT_CODE)"
echo "❌ 설정 중 에러 발생 ($EXIT_CODE)"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
# LINUX_USER가 설정되어 있으면 초기화 옵션 제공
if [ -n "$LINUX_USER" ]; then
read_input "초기화하고 다시 시작하시겠습니까? (y/n): " REINIT
if [[ "$REINIT" =~ ^[Yy]$ ]]; then
echo "선택 사항:"
echo " 1) Linux/DB 사용자만 정리하고 다시 시작"
echo " 2) MariaDB 완전 제거 후 다시 시작 (권장)"
echo " 3) 취소"
echo ""
echo "⚠️ $LINUX_USER 사용자 및 관련 설정을 초기화합니다..."
read_input "선택 (1, 2 또는 3): " CLEANUP_OPTION
CLEANUP_OPTION=${CLEANUP_OPTION:-3}
# MariaDB 사용자 삭제
case $CLEANUP_OPTION in
2)
echo "MariaDB를 완전히 제거합니다..."
systemctl stop mariadb 2>/dev/null || true
dnf remove -y mariadb-server 2>/dev/null || true
rm -rf /var/lib/mysql /etc/my.cnf.d/50-server.cnf 2>/dev/null || true
echo "✓ MariaDB 완전 제거 완료"
# LINUX_USER가 설정되어 있으면 Linux 사용자/DB 사용자 정리
if [ -n "$LINUX_USER" ]; then
if [ -n "$DB_USER" ]; then
mysql -u root -e "DROP USER IF EXISTS '$DB_USER'@'%';" 2>/dev/null || true
echo "✓ MariaDB 사용자 삭제 완료"
echo "⚠️ MariaDB 사용자 '$DB_USER' 정리 (수동으로 필요할 수 있음)"
fi
# Linux 사용자 홈 디렉토리 포함 삭제
if id "$LINUX_USER" &>/dev/null; then
userdel -r "$LINUX_USER" 2>/dev/null || userdel "$LINUX_USER" 2>/dev/null || true
echo "✓ Linux 사용자 '$LINUX_USER' 삭제 완료"
fi
fi
echo ""
echo "초기화가 완료되었습니다. 스크립트를 다시 실행하세요."
;;
1)
echo ""
echo "⚠️ Linux/DB 사용자를 정리합니다..."
if [ -n "$LINUX_USER" ]; then
if id "$LINUX_USER" &>/dev/null; then
userdel -r "$LINUX_USER" 2>/dev/null || userdel "$LINUX_USER" 2>/dev/null || true
echo "✓ Linux 사용자 '$LINUX_USER' 삭제 완료"
fi
fi
echo ""
echo "초기화가 완료되었습니다. 스크립트를 다시 실행하세요."
else
echo "초기화를 건너뜁니다. 수동으로 정리 후 다시 진행하세요."
fi
else
echo "스크립트를 다시 실행해 주세요."
fi
;;
*)
echo "정리를 건너뜁니다. 수동으로 정리 후 다시 진행하세요."
;;
esac
fi
exit $EXIT_CODE
}
@ -129,7 +149,7 @@ if id "$LINUX_USER" &>/dev/null; then
if [[ "$LINUX_PW" != "$LINUX_PW_CONFIRM" ]]; then
echo "❌ Linux 사용자 비밀번호가 일치하지 않습니다."
read -p "다시 입력하시겠습니까? (Y/n): " RETRY_PW_2 < /dev/tty
RETRY_PW_2=${RETRY_PW_2:-Y}
RETRY_PW_2=${RETRY_PW_2:-N}
if [[ ! "$RETRY_PW_2" =~ ^[Yy]$ ]]; then
echo "비밀번호 입력을 취소했습니다."
exit 1
@ -168,11 +188,11 @@ else
if [[ "$LINUX_PW" != "$LINUX_PW_CONFIRM" ]]; then
echo "❌ Linux 사용자 비밀번호가 일치하지 않습니다."
read -p "다시 입력하시겠습니까? (Y/n): " RETRY_PW < /dev/tty
RETRY_PW=${RETRY_PW:-Y}
RETRY_PW=${RETRY_PW:-N}
if [[ ! "$RETRY_PW" =~ ^[Yy]$ ]]; then
echo ""
read -p "스크립트를 다시 시작하시겠습니까? (Y/n): " RESTART_SCRIPT < /dev/tty
RESTART_SCRIPT=${RESTART_SCRIPT:-Y}
RESTART_SCRIPT=${RESTART_SCRIPT:-N}
if [[ "$RESTART_SCRIPT" =~ ^[Yy]$ ]]; then
exit 1
else
@ -213,11 +233,11 @@ if [[ "$SAME_ACCOUNT" =~ ^[Yy]$ ]]; then
if [[ "$DB_PW" != "$DB_PW_CONFIRM" ]]; then
echo "❌ MariaDB 비밀번호가 일치하지 않습니다."
read -p "다시 입력하시겠습니까? (Y/n): " RETRY_DB_PW < /dev/tty
RETRY_DB_PW=${RETRY_DB_PW:-Y}
RETRY_DB_PW=${RETRY_DB_PW:-N}
if [[ ! "$RETRY_DB_PW" =~ ^[Yy]$ ]]; then
echo ""
read -p "스크립트를 다시 시작하시겠습니까? (Y/n): " RESTART_SCRIPT2 < /dev/tty
RESTART_SCRIPT2=${RESTART_SCRIPT2:-Y}
RESTART_SCRIPT2=${RESTART_SCRIPT2:-N}
if [[ "$RESTART_SCRIPT2" =~ ^[Yy]$ ]]; then
exit 1
else
@ -250,11 +270,11 @@ else
if [[ "$DB_PW" != "$DB_PW_CONFIRM" ]]; then
echo "❌ MariaDB 비밀번호가 일치하지 않습니다."
read -p "다시 입력하시겠습니까? (Y/n): " RETRY_DB_PW2 < /dev/tty
RETRY_DB_PW2=${RETRY_DB_PW2:-Y}
RETRY_DB_PW2=${RETRY_DB_PW2:-N}
if [[ ! "$RETRY_DB_PW2" =~ ^[Yy]$ ]]; then
echo ""
read -p "스크립트를 다시 시작하시겠습니까? (Y/n): " RESTART_SCRIPT3 < /dev/tty
RESTART_SCRIPT3=${RESTART_SCRIPT3:-Y}
RESTART_SCRIPT3=${RESTART_SCRIPT3:-N}
if [[ "$RESTART_SCRIPT3" =~ ^[Yy]$ ]]; then
exit 1
else
@ -341,7 +361,12 @@ chown "$LINUX_USER:$LINUX_USER" "$USER_HOME/.vimrc" "$USER_HOME/.bashrc" 2>/dev/
# -------------------------------------------------
echo "MariaDB 10.6 설치 중..."
dnf module reset mariadb -y 2>/dev/null || true
dnf module enable mariadb:10.6 -y || { echo "❌ MariaDB 10.6 활성화 실패"; exit 1; }
# MariaDB 모듈 활성화 (실패 시 일반 설치 시도)
if ! dnf module enable mariadb:10.6 -y 2>/dev/null; then
echo "⚠️ MariaDB 10.6 모듈이 없습니다. 기본 MariaDB를 설치합니다..."
fi
dnf install -y mariadb-server || { echo "❌ MariaDB 설치 실패"; exit 1; }
systemctl enable --now mariadb || { echo "❌ MariaDB 서비스 활성화 실패"; exit 1; }
@ -380,7 +405,7 @@ EXISTING_USER=$(mysql -u root -se "SELECT COUNT(*) FROM mysql.user WHERE User='$
if [ "$EXISTING_USER" -gt 0 ]; then
echo "⚠️ DB 사용자 '$DB_USER'이(가) 이미 존재합니다."
read -p "기존 사용자의 비밀번호를 변경하시겠습니까? (Y/n): " UPDATE_PW < /dev/tty
UPDATE_PW=${UPDATE_PW:-Y}
UPDATE_PW=${UPDATE_PW:-N}
if [[ "$UPDATE_PW" =~ ^[Yy]$ ]]; then
mysql -u root <<MYSQL_UPDATE
ALTER USER '$DB_USER'@'%' IDENTIFIED BY '$DB_PW';