MySQL不同数据库之间表的简单同步
MySQL不同数据库之间表的简单同步,实用轻量级数据
如下案列展示:
例如我现在主库上面有users 、tenants两张表需要同步到备库上面
主库
1、确认主库数据条数
select count(*) from users select count(*) from tenants
2、将数据导出到文件,/data/目录必须具有mysql对应的权限
select * into outfile '/data/users20180205.txt' from users; select * into outfile '/data/tenants20180205.txt' from tenants;
备库
将主库导出的文件users20180205.txt、tenants20180205.txt上传到备库服务器上
1、确认备库的数据条数
select count(*) from users select count(*) from tenants
2、备份从库上的数据,防止数据异常丢失,方便恢复
mysqldump -t testdb -u wagnchengliang -ppassword --tables users tenants >/home/wangchengliang/usersbak.sql mysqldump -t testdb -u wagnchengliang -ppassword --tables tenants >/home/wangchengliang/tenantsbak.sql
3、清空两张表
truncate users; truncate tenants
4、导入数据
load data infile /data/users20180205.txt' into table users; load data infile /data/tenants20180205.txt' into table tenants ;
5、此时确认备库与主库的条数是否一致
select count(*) from users select count(*) from tenants
如果需要定期备份,可以脚本化
附备份方法:
1.导出指定表的数据
mysqldump -t database -u username -ppassword --tables table_name1 table_name2 table_name3 >/home/wangchengliang
2.导出指定表的结构
mysqldump -d database -u username -ppassword --tables table_name1 table_name2 table_name3>/home/wangchengliang
3.导出表的数据及结构
mysqldump database -u username -ppassword --tables table_name1 table_name2 table_name3>/home/wangchengliang
4.若数据中,某些表除外,其余表都需导出
mysqldump -h IP -u username -ppassword --default-character-set=utf8 --database database_name --ignore-table=database_name.table_name1
--ignore-table=database_name.table_name2 --ignore-table=database_name.table_name3 >/home/wangchengliang