[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