일단 들었을땐 그냥 어제 내가 nginx 설정으로 http로 들어오는 애들은 https로 바꾸게끔 설정을 해둬서 그럴거라 생각을 하여... proxy_pass설정을 하고 알려줬다..
(솔직히 이 문제도 없진 않았지 않을까 하고 nginx 알못이 쓴다)
그래서 nginx를 설정해주고 확인해줄 수 있어? 라 했는데... 여전히 아니라고 하기에...
db container 에 접속을 하고 나서...
스샷을 못찍었네...
Z_README_TO_RECOVER 이라는 스키마를 발견... 리서치를 해본 결과... 랜섬웨어라고 했다...걸린이유는
docker strop mariadb
docker rm mariadb
docker prune volume
#volume은 생성하지 않으면 임의로 생성되는데 그렇게 하기 싫어서...
docker volume create DB
#volume의 정보는
docker inspect DB
기존의 docker container 는
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 -v mariadb:/var/lib/mysql --name mariadb mariadb:10.6
#docker container 정보는
docker inspect mariadb
이렇게 port 번호 3306 에 비밀번호 1234 였다...
후엔 다른 port 번호와 다른 비번으로 바꾸고 시도를 진행하였다..
실제 데이터는 아니지만 예시로
docker run -d -p 7777:3306 -e MYSQL_ROOT_PASSWORD=afdafasfd23324-v mariadb:/var/lib/mysql --name mariadb mariadb:10.6
이런식으로 바꾸어 주었다.
# backup을 저장하기 위한 디렉토리 생성
sudo mkdir backup/
sudo mkdir backup/database
#스크립트
sudo vi /backup/DB.sh
#스크립트 내용
echo "============= 5일 지난 데이터 삭제 시작 ============="
# 5일이 지난건 지워버림
DEL_FILE=`date -d "-5 days" +%Y%m%d`
# 아래와 같이 작성한 이유는 나같은 경우는 crontab 을 2번하게 하였기 때문에
rm -rf /backup/database/*mysql_bak_dev_${DEL_FILE}*.sql
echo "============= 5일 지난 데이터 삭제 완료 ============="
echo "============= 변수 할당 시작 ============="
DATE=`date +"%Y%m%d_%H%M"` # 나는 하루에 2번해서 구분하기 위해
USER="{DB 접속계정}" # ex) USER="root"
PASSWORD="{DB 계정의 비번}" # ex) PASSWORD="1234"
DATABASE="{접속해야하는 database 이름}" # ex) DATABASE="data"
CONTAINER="{docker container 이름}" #ex) CONTAINER="mariadb"
OUTPUT_PATH="/backup/database/mysql_bak_${DATABASE}_${DATE}.sql"
echo "============= 변수 할당 완료 ============="
echo "============= Database 백업 시작 ============="
docker exec ${CONTAINER} /usr/bin/mysqldump -u${USER} -p${PASSWORD} ${DATABASE} > ${OUTPUT_PATH}
chown root.root ${OUTPUT_PATH}
chmod 755 ${OUTPUT_PATH}
echo "============= Database 백업 완료 ============="
# esc 누르고 :wq
#크론 잡 생성
#sudo crontab -e
#맨아래에
{원하는 분 : 0~59} {내가 원하는 시 : 0~23} {원하는 일 : 1~31} {원하는 월 : 1~12} {원하는 요일 : 0~7}
#ex) 30 17 * * * bash /backup/DB.sh
#ex) 30 00 * * * bash /backup/DB.sh
# 뜻은 매일 오후 5시 반에 backup/DB.sh 을 실행해주세요.
# 뜻은 매일 오전 12시 반에 backup/DB.sh 을 실행해주세요.
# 그리고 ctrl + x 저장하고 싶으면 y를 누르고 저장되는 파일 이름을 확인 후 enter를 누르면 저장된다.
#=> 이렇게 하는 이유
# GNN nano로 열어서...
service crond restart
# 반영결과 확인
crontab -l
이렇게 설정을 하면 되는데.. 일단 나같은경우는 잘 백업이 되는지 확인이 하고 싶었음..
그래서 실행을 해봄
sudo sh /backup/DB.sh
#그리고 생성된 내용은
cat /backup/database/mysql_bak_dev_20220925_0723.sql 이렇게 해서 확인했다.
cat /{저장된 디렉토리들 루트서부터}/../../{실제 파일명}.sql
아래와 같이 잘 생성이 된걸 확인할 수 있다.
DB를 노출할때는 port번호와... 비번 조심...
솔직히 docker로 해둬서 다행인거 같기도 하고 아닌거 같기도 하고..
결론은...
이번에 프로젝트 진행하면서 데이터베이스에 비트코인 내놓으라고 당했네요...
열심히 해결방법 알아야겠어요 ㅜㅜ