什么时候需要复制表数据?
我们先列出几个需要复制MySQL表数据的场景:
1. 加入新的项目团队。该项目已经开发了一段时间。您想建立一个本地数据库以方便开发。
2、领导让你做报告。他需要对数据库做一些工作,然后将报告导出给他。
3.定期数据库备份
4.数据库误删除数据恢复
复制表数据的三种方法
以下是复制表数据的三种方法。方法1和2是逻辑复制,方法3是物理复制。每种方法都有其局限性,可以根据不同的场景进行选择和使用。记录下面的关键语句,以便于收集和随时使用。
方法一
1、将满足条件的语句导出到文件t.sql
mysqldump -h$host -P$port -u$user -p --add-locks=0 --no-create-info --single-transaction --set-gtid-purged=OFF db1 t --where="a>900" --result-file=/tmp/t.sql
2. 选择执行导出的sql文件的数据库。
mysql -h127.0.0.1 -P13000 -uroot -p db2 -e "source /tmp/t.sql"
方法二进入
1.导出数据到csv文件
select * from db1.t where a>900 into outfile '/tmp/t.csv';
2.导入csv文件数据
load data infile '/tmp/t.csv' into table db2.t;
方法三可以转移表空间
注意:该方法需要mysql版本5.6以上1.新建表r
create table r like t;
2、删除新表r的表空间(ibd文件)
alter table r discard tablespace;
3.锁定表并导出cfg文件
flush table t for export;
4.复制cfg和ibd文件
cp t.cfg r.cfg; cp t.ibd r.ibd;
5.修改复制文件的权限
chown mysql:mysql r.*
6. 解锁表
unlock tables;
7.导入表空间
alter table r import tablespace;
其他
批量插入数据的存储过程
delimiter ;; create procedure idata() begin declare i int; set i=1; while(i<=1000)do insert into t values(i,i,i); set i=i+1; end while; end;;delimiter ;call idata();
参考文档
《MySQL实用讲座45》
扫一扫在手机端查看
本文链接:https://by928.com/7683.html 转载请注明出处和本文链接!请遵守
《网站协议》
!
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。