【MySQL数据迁移】mydump&mydumper
-
mysqldump使用场景
1、导出表
1 2 3 4 | mysqldump -u用户名 -p密码 数据库名 表名 > 表名.sql 备份单表:mysqldump -uroot -pdbpasswd dbname test1 > test1.sql 导出多张表: mysqldump -uroot -ppasswd -- set -gtid-purged=off --single-transaction --databases dbname --tables test1 test2 >dump_tables.sql |
2、导出where条件的数据,并加gzip压缩
1 | mysqldump - uname -ppwd dbname tbname --single-transaction --where= "id>10" | gzip > backupfile.sql.gz |
相应的导入:
gunzip解压:
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
3、数据库的备份
mysqldump -uadmin -p'xxx' -B --quick --single-transaction --set-gtid-purged=OFF -R -E --triggers zedb > zedb.`date +"%Y-%m-%d"`.sql 数据迁移:带 --set-gtid-purged=OFF 数据备份:不带 --set-gtid-purged=OFF mysqldump加--set-gtid-purged=OFF时,记录binlog日志,如果不加,不记录binlog日志 所以在做基于gtid主从复制时,用mysqldump备份时就要加--set-gtid-purged=OFF,否则主库导入恢复了数据,主没有了binlog日志,数据则不会被同步。
多个数据库的备份
1 | mysqldump -uroot -p -S /data/mysql/tmp/mysql .sock -B --quick --single-transaction -- set -gtid-purged=OFF -R -E --triggers --databases db1 db2 > 41.` date + "%Y-%m-%d" `.sql |
4、mysqldump导出全部数据
mysqldump -uroot -p --master-data=2 --single-transaction -R -E --triggers -A -q > all.sql
其中--master-data=2代表备份时刻记录master的Binlog位置和Position,--single-transaction意思是获取一致性快照,-R意思是备份存储过程和函数,--triggres的意思是备份触发器,-A代表备份所有的库。更多信息请自行mysqldump --help查看。
导出文本为csv格式
mysql -udba -pXZ5rjoVvWrPp --socket=/data/mysql_3309/mysql.sock
-e "SELECT id_card,adjust_amount,get_package_time from houbank_applet.t_applet_package_user INTO OUTFILE \"/var/lib/mysql-files/test.csv\" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n';"select into outfile用法
SELECT ... FROM TABLE_A INTO OUTFILE "/path/to/file" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';
load data infile用法
LOAD DATA INFILE "/path/to/file" INTO TABLE table_name; 注意:如果导出时用到了FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'语句,那么LODA时也要加上同样的分隔限制语句。还要注意编码问题。
mysql -udba -pXZ5rjoVvWrPp --socket=/data/mysql_3309/mysql.sock
-e "SELECT id_card,adjust_amount,get_package_time from houbank_applet.t_applet_package_user;" > /root/scripts/output/user01.txt-
mydumper/myloader用法
$ mydumper -u admin -p "Password" -h 10.10.10.10 -P 3306 -C -c --trx-consistency-only -t 10 -G -E -R -B employee -o /home/mysql/tempbackup/
$ myloader -t 15 -v 3 -C -o -u -p --directory='/home/mysql/tempbackup/'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2018-05-05 MySQL参数设置