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