MySQLdump逻辑备份原创
# mysqldump 逻辑备份
# 全库备份
mysqldump -hlocalhost -uroot -P6003 -p --extended-insert=false --set-gtid-purged=OFF --skip-tz-utc --databases database_name > database_name.sql
1
# 只导出表结构不导出数据
mysqldump --opt -d databasename -u root -p > xxx.sql
1
# 导出数据不导出结构
/usr/local/mysql/bin/mysqldump -S /data/db/mysql3388/mysql3388.sock -uroot -p dbname -t tblename --set-gtid-purged=OFF --skip-tz-utc > test.sql
1
# 指定参数备份
mysqldump -udba_root -p -hlocalhost -P6633 -S /data/db/mysql6633/mysql6633.sock \
--skip-tz-utc --extended-insert=false --complete-insert --set-gtid-purged=OFF \
-n -t mybase mytable --where "status <> 1 and bad_status <> 1" > aaaa.sql
1
2
3
2
3
-t, --no-create-info
Don't write table creation info. 导出数据不导出结构
-C, --compress
Use compression in server/client protocol. 压缩
--complete-insert
生成完整的insert语句(带字段名和字段对应的值)
--extended-insert=false
导出的表,每行一个insert语句。
--extended-insert=true
导出的表,一个很长的insert语句。
--set-gtid-purged=OFF
不增加 GLOBAL.GTID_PURGED 变量
--no-create-db
, -n 只导出数据,而不导出库结构(不添加CREATE DATABASE 语句)。
--no-create-info
, -t 只导出数据,而不导出表结构(不添加CREATE TABLE 语句)。
--no-data
, -d 不导出任何数据,只导出数据库表结构。
据库采用北京时间东八区,mysqldump
导出的文件当中显示的 timestamp
时间值相对于通过数据库查询显示的时间倒退了8个小时。
如果不带上 --skip-tz-utc
参数,那timestamp字段的数据都会相差8小时,造成数据不一致
--skip-tz-utc
的含义就是当 mysqldump
导出数据时,不使用格林威治时间,而使用当前 mysql 服务器的时区进行导出,这样导出的数据中显示的 timestamp
时间值也和表中查询出来的时间值相同。
上次更新: 8/28/2024
- 01
- GPT分区使用 parted 扩展分区的操作流程 原创08-28
- 02
- VictoriaMetrics 集群版安装与配置 原创08-24
- 03
- Kubernetes (k8s) 相关名词详解 原创06-27