本地电脑mysql中有一个数据库有将近20G,通过navicat同步到服务器上的mysql需要将近1天多,而且因为数据库数据修改变动频繁,每次通过navicat同步效率太慢,所以想有没有其他方法可以实现快速复制整个数据库呢?
navicat是通过sql一条条insert,网上看到有通过复制mysql文件的方法,但文章文字和图片对不上,不知道怎么操作,所以想了解操作过的分享下高效同步方法?
数据导入的本质都是执行insert语句来实现的。
如果导入的数据量过大容易导致死锁,最好分批导入。
想快速导入,这两个参数可以在线修改,可以按照下面步骤来操作:
# 1.进入MySQL命令行 临时修改这两个参数
set global innodb_flush_log_at_trx_commit = 2;
set global sync_binlog = 2000;
# 2.执行SQL脚本导入
mysql -uroot -pxxxxxx testdb < testdb.sql
# 3.导入完成 再把参数改回来
set global innodb_flush_log_at_trx_commit = 1;
set global sync_binlog = 1;
1、严格意义上说,数据库迁移需要停业务的,但是如果你们是分库分表的话,可以分批迁移;
2、MySQL可以到处dump文件,然后可以快速导入到另一个数据库
通过命令行导出数据库文件然后导入,速度快几十倍
1.你直接复制mysql的数据文件肯定是占用状态,不允许复制,需要停止mysql服务
2.如果服务不能停,那么你可以用导入导出的方式导数据,而不是同步数据
3.如果你的两个数据库已经做了同步的设置,那么你在修改一个库的时候另一个库也就跟着改了,而不用等你把一个库彻底改完再手动同步
可用datax工具
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!