码迷,mamicode.com
首页 > 数据库 > 详细

mysql的备份与恢复

时间:2016-01-08 09:24:41      阅读:299      评论:0      收藏:0      [点我收藏+]

标签:mysql的备份与恢复

[root@zhangmengjunlinux ~]# mysqldump -uroot -pmenglei discuz

这个是查看discuz库备份出来的库的命令,mysqldump 备份的工具,备份数据库,格式和mysql登陆是一样的

[root@zhangmengjunlinux ~]# mysqldump -uroot -pmenglei discuz > /data/discuz.sql

重并向到一个文件里去,实际上他备份的是可读的并不是二进制的

[root@zhangmengjunlinux ~]# vim !$

vim /data/discuz.sql

这个就是备份出来的discuz.sql

技术分享

备份出来的文件有规律,可以通过这个文件恢复整个库,它是一个表一个表的备份的,我们可以找一下发帖子的post相关的 pre_from_post,那么现在假如我不小心把这个表给删了,这个表具体的文件在哪呢?

[root@zhangmengjunlinux ~]# cd /data/mysql

[root@zhangmengjunlinux mysql]# ls

discuz       mysql             mysql-bin.000004  mysql-bin.000008  mysql-bin.000012  mysql-bin.000016  mysql-bin.000020  zhangmengjunlinux.com.err

ibdata1      mysql-bin.000001  mysql-bin.000005  mysql-bin.000009  mysql-bin.000013  mysql-bin.000017  mysql-bin.000021  zhangmengjunlinux.com.pid

ib_logfile0  mysql-bin.000002  mysql-bin.000006  mysql-bin.000010  mysql-bin.000014  mysql-bin.000018  mysql-bin.index

ib_logfile1  mysql-bin.000003  mysql-bin.000007  mysql-bin.000011  mysql-bin.000015  mysql-bin.000019  test

[root@zhangmengjunlinux mysql]# cd discuz

[root@zhangmengjunlinux discuz]# ls

db.opt                                 pre_common_plugin.MYI               pre_forum_groupuser.MYI            pre_home_feed_app.MYI

pre_common_admincp_cmenu.frm           pre_common_pluginvar.frm            pre_forum_hotreply_member.frm      pre_home_feed.frm

pre_common_admincp_cmenu.MYD           pre_common_pluginvar.MYD            pre_forum_hotreply_member.MYD      pre_home_feed.MYD

pre_common_admincp_cmenu.MYI           pre_common_pluginvar.MYI            pre_forum_hotreply_member.MYI     pre_home_feed.MYI

pre_common_admincp_group.frm           pre_common_process.frm              pre_forum_hotreply_number.frm      pre_home_follow_feed_archiver.frm

pre_common_admincp_group.MYD           pre_common_regip.frm                pre_forum_hotreply_number.MYD      pre_home_follow_feed_archiver.MYD

库和表都是单个一个一个的文件,那么每个表都有三个不同的后缀名frm、MYD、 MYI

[root@zhangmengjunlinux discuz]# rm -rf pre_form_post*

我们不小心把post表给它删了,重启mysql

#/etc/init.d/mysqld restart

恢复备份 反向重并向

[root@zhangmengjunlinux discuz]# mysql -uroot -pmenglei discuz < /data/discuz.sql

单独备份一个表

[root@zhangmengjunlinux discuz]# mysqldump -uroot -pmenglei discuz pre_forum_post > /data/post.sql

那么恢复的时候怎么去恢复呢

[root@zhangmengjunlinux discuz]# mysql -uroot -pmenglei discuz  < /data/post.sql

备份的时候加表名,恢复的时候不需要加表名了,只需要跟库名

在备份的时候没有指定字符集,恢复的时候字符集跟备份之前的字符集不一致,最终导致恢复完了数据他是乱码,这种情况很有可能发生,我们要备份的指定一个字符集

[root@zhangmengjunlinux discuz]# mysqldump -uroot --default-character-set=gbk -pmenglei discuz per_forum_post > /data/post.sql

恢复的命令

[root@zhangmengjunlinux discuz]# mysql -uroot --default-character-set=gbk -pmenglei discuz  < /data/post.sql

mysql的备份与恢复

标签:mysql的备份与恢复

原文地址:http://mengjunlinux.blog.51cto.com/10772888/1732736

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!