数据库恢复注意事项:
# 数据恢复和字符集关联很大,如果字符集不正确会导致恢复的数据乱码。
#MySQL命令和source命令恢复数据库的原理就是把文件的SQL语句,在数据库重新执行的过程。
1、利用source命令恢复数据库
进入MySQL数据库控制台
mysql -u root -p密码登陆后,mysql>use 数据库,然后使用source命令,后面参数为脚本文件。
mysql>source dadong_db.sql ###这个文件可以是全路径的压缩包,也可以是相对路径(必须先进入到压缩包所在的文件夹中,默认是登陆mysql前的系统路径)。
2、针对压缩的备份数据进行恢复
2.1、使用gzip解压(会删除压缩文件)
先备份数据库,做测试数据 [root@DB02 opt]# mysqldump -B --master-data=2 dadong|gzip >/opt/dadong.sql.gz [root@DB02 opt]# ls dadong.sql.gz ####解压压缩包 [root@DB02 opt]# gzip -d /opt/dadong.sql.gz [root@DB02 opt]# ls dadong.sql ###恢复数据库 [root@DB02 ~]# mysql </opt/dadong.sql
注意:gzip的参数:
-c 将输出写到标准输出上,并保留原有文档。
-d 将压缩文档解压。
如果在导出数据库时指定了-B参数,恢复时无需指定库恢复。因为-B参数带了use dadong 还会有create database dadong;而恢复时指定库就类似于use dadong.
2.2、使用gzip解压(不会删除压缩文件)
使用gzip加参数cd不会删除原文件。
[root@DB02 ~]# !mysqldump ##调用最近的mysqldump命令,重复执行备份。 mysqldump -B --master-data=2 dadong|gzip >/opt/t.sql.gz [root@DB02 ~]# gzip -cd /opt/dadong.sql.gz >/opt/dadong1.sql [root@DB02 ~]# mysql </opt/dadong1.sql [root@DB02 ~]# 注:如果不想退出数据库执行恢复语句时可以使用system mysql> system cd /root mysql> exit Bye [root@DB02 ~]# pwd /root [root@DB02 ~]# mysql> system mysqldump -B --master-data=2 --single-transaction -B dadong |gzip > /opt/all.sql.gz mysql> exit Bye [root@DB02 ~]# cd /opt/ [root@DB02 opt]# ls 10.txt 2.txt 4.txt 6.txt 8.txt all.sql.gz dadong.sql 1.txt 3.txt 5.txt 7.txt 9.txt dadong [root@DB02 opt]#
2.3、 使用zcat读取压缩包数据
使用zcat读取压缩包数据。
[root@DB02 ~]# zcat /opt/dadong.sql.gz >/opt/dadong3.sql
[root@DB02 ~]# mysql </opt/dadong3.sql