MYSQL 自动按表备份SQL 且自动压缩脚本

按表备份,可以按表还原

我是容器部署的mysql 我需要进到容器里面执行脚本 docker exec -it mysql bash

#!/bin/bash

DB_NAME="databases"
USER="root"
PASSWORD="root"

TABLES=("transaction_history" "interface_log" "full_link")

for TABLE in "${TABLES[@]}"; do
    mysqldump -u "$USER" -p"$PASSWORD" --databases "$DB_NAME" --tables "$TABLE" > "${TABLE}_20240101-20240701.sql"
    gzip "${TABLE}_20240101-20240701.sql"
done

执行的时候如果报错

: not foundbles.sh: 2: back_sql_tables.sh: 
: not foundbles.sh: 6: back_sql_tables.sh: 
back_sql_tables.sh: 7: back_sql_tables.sh: Syntax error: "(" unexpected

这是windows和unix系统格式不一样,【在 Unix/Linux 系统中,脚本文件应使用 LF(Line Feed)作为换行符,而在 Windows 系统中,换行符通常是 CRLF(Carriage Return + Line Feed)】
在宿主机中执行命令进行转换sed -i 's/\r$//' back_sql_tables.sh

有些数据库较大,备份时间较长,前台执行容易断,可以使用nohup 命令进行后台执行nohup ./backup_tables.sh > backup_output.log 2>&1 &

你可能感兴趣的:(mysql,sql,数据库)