Add MariaDB full removal option and change default values (N for most prompts, Y for same account)
This commit is contained in:
@ -35,37 +35,57 @@ cleanup() {
|
||||
EXIT_CODE=$?
|
||||
if [ $EXIT_CODE -ne 0 ]; then
|
||||
echo ""
|
||||
echo "❌ MariaDB 설정 중 에러 발생 ($EXIT_CODE)"
|
||||
echo "❌ 설정 중 에러 발생 ($EXIT_CODE)"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo ""
|
||||
echo "선택 사항:"
|
||||
echo " 1) Linux/DB 사용자만 정리하고 다시 시작"
|
||||
echo " 2) MariaDB 완전 제거 후 다시 시작 (권장)"
|
||||
echo " 3) 취소"
|
||||
echo ""
|
||||
read_input "선택 (1, 2 또는 3): " CLEANUP_OPTION
|
||||
CLEANUP_OPTION=${CLEANUP_OPTION:-3}
|
||||
|
||||
# LINUX_USER가 설정되어 있으면 초기화 옵션 제공
|
||||
if [ -n "$LINUX_USER" ]; then
|
||||
read_input "초기화하고 다시 시작하시겠습니까? (y/n): " REINIT
|
||||
if [[ "$REINIT" =~ ^[Yy]$ ]]; then
|
||||
echo ""
|
||||
echo "⚠️ $LINUX_USER 사용자 및 관련 설정을 초기화합니다..."
|
||||
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 완전 제거 완료"
|
||||
|
||||
# MariaDB 사용자 삭제
|
||||
if [ -n "$DB_USER" ]; then
|
||||
mysql -u root -e "DROP USER IF EXISTS '$DB_USER'@'%';" 2>/dev/null || true
|
||||
echo "✓ MariaDB 사용자 삭제 완료"
|
||||
# LINUX_USER가 설정되어 있으면 Linux 사용자/DB 사용자 정리
|
||||
if [ -n "$LINUX_USER" ]; then
|
||||
if [ -n "$DB_USER" ]; then
|
||||
echo "⚠️ MariaDB 사용자 '$DB_USER' 정리 (수동으로 필요할 수 있음)"
|
||||
fi
|
||||
|
||||
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 사용자를 정리합니다..."
|
||||
|
||||
# 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' 삭제 완료"
|
||||
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';
|
||||
|
||||
Reference in New Issue
Block a user