标签: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的备份与恢复
原文地址:http://mengjunlinux.blog.51cto.com/10772888/1732736