Files
sam-sales/mysql_sync.sh

62 lines
1.3 KiB
Bash
Raw Permalink Normal View History

2025-12-30 21:34:17 +09:00
#!/bin/bash
# ===== 설정값 =====
DOCKER_CONTAINER="sam-mysql-1"
DOCKER_DB="chandj"
DOCKER_USER="root"
DOCKER_PASS="root"
REMOTE_USER="pro"
REMOTE_HOST="114.203.209.83"
REMOTE_DB="chandj"
CHARSET="utf8mb4"
# ===== 인자 체크 =====
if [ -z "$1" ]; then
echo "사용법: $0 table1 또는 $0 table1,table2,table3"
exit 1
fi
# 콤마 기준으로 테이블 분리
IFS=',' read -ra TABLES <<< "$1"
for TABLE in "${TABLES[@]}"; do
SQL_FILE="${TABLE}.sql"
echo "▶ 테이블 덤프: $TABLE"
docker exec -i "$DOCKER_CONTAINER" mysqldump \
-u"$DOCKER_USER" -p"$DOCKER_PASS" \
--default-character-set="$CHARSET" \
--add-drop-table \
"$DOCKER_DB" "$TABLE" > "$SQL_FILE"
if [ $? -ne 0 ]; then
echo "❌ 덤프 실패: $TABLE"
exit 1
fi
echo "▶ 서버로 복사: $SQL_FILE"
scp "$SQL_FILE" "$REMOTE_USER@$REMOTE_HOST:~/"
if [ $? -ne 0 ]; then
echo "❌ SCP 실패: $SQL_FILE"
exit 1
fi
echo "▶ 서버 DB 적용: $TABLE"
ssh "$REMOTE_USER@$REMOTE_HOST" \
"mysql -u $REMOTE_USER -p $REMOTE_DB < ~/$SQL_FILE"
if [ $? -ne 0 ]; then
echo "❌ DB 적용 실패: $TABLE"
exit 1
fi
echo "✅ 완료: $TABLE"
echo "--------------------------------------"
done
echo "🎉 모든 테이블 처리 완료"