mysql数据的备份恢复和导入导出

  数据的迁移往往关系重大,他直接影响各种环境,也是做一些瘦身和优化的方法。这里讲讲一些数据迁移的要点。

  关于mysql的数据备份,实际上只需要将my.ini中配置的data目录整个拷贝并备份起来就可以了(恢复的时候只需要删除现有的文件并将备份拷贝回来就行了),经本人测试,该方法可以在mysql5.1以上各版本间使用(包括5.1, 5.5, 5.6),所以可以肯定的是mysql5这个大版本基本上没有变过存储的结构。

  对于大数据量的导出,经过测试,发现原来7g的数据,导出后只有大概3g,本来觉得有些奇怪,但是仔细一想,索引以及其他存放在磁盘上的结构很可能让数据变大。

  mysql dump时经常会遇到 Unknown command '\''.这个报错,让人摸不着头脑。实际上这个是字符编码的问题,所以需要在导入和导出时都分别加上默认编码。

mysqldump -uroot -p --default-character-set=utf8 databaseName > db.sql
  实际导出时速度不慢,7g数据大概只用了几分钟

mysql -uroot -p --default-character-set=utf8 databaseName < db.sql
  导入是一个反向的过程,速度比较慢,大概是因为在索引下调整插入的数据

  这里稍微介绍一些mysqldump的有用的参数,详细参数请参考文末资料

  routines,-R:导出存储过程及自定义函数

  triggers:导出触发器

  no-data,-d:不导出数据,只导出结构

  no-create-info,-t:不导出结构,只导出数据

  PS:如果以上两个同时使用,mysql会不会癫狂,它只会生成一堆注释给你

  opt:快捷选项,等同于同时添加 add-drop-tables add-locking create-option disable-keys extended-insert lock-tables quick set-charset 选项

  另一个经常用到的场景是原样复制表,可以用如下的语句

create table bigtable2 select * from bigtable;
  如果表已经建好并且略有出入,可以这样用。如果表bigtable2里已经有重复的字段了,记得使用replace

insert into bigtable(col1, col2, col3) select col1, col2, col3 from bigtable2

  数据库的导入导出:http://iiaf.iteye.com/blog/959549 http://www.cnblogs.com/xuejie/archive/2013/01/11/2856911.html

  mysql自动备份:http://os.51cto.com/art/201305/395486.htm 

  http://www.111cn.net/database/mysql/52707.htm

  数据导入导出常用命令 http://www.csdn.net/article/2011-01-17/290283

  数据备份的mysqldump http://database.51cto.com/art/201005/202724.htm

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值