mysqldump备份还原数据库(日常记录)

这两天服务器不知道什么原因,数据库第三方软件备份经常失败,因而考虑换个方式。

基于bat备份数据。个人比较喜欢,原因是不必依赖第三方软件,而且操作简单,自定义也很方便。


数据库:ddhost

mysql用户名:root

密码:hhhh

1、新建bat:

(1)生成一个时间戳,例如20160428;

set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"

(2)保存备份文件的根目录

set "base_dir=E:\BACK\"

(3)生成一个当天备份文件保存的目录

set "back_up_dir=%base_dir%ddhost_%Ymd%"

(4)创建一个目录

md "%back_up_dir%"

(5)使用mysqldump备份sql

cd C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump -h localhost --single-transaction --ignore-table=ddhost.T_SYS_FILE --ignore-table=ddhost.T_SYS_FILE2 -uroot -phhhh --default-character-set=utf8 ddhost > "%back_up_dir%"\ddhost.sql

注:因为有两张表情况比较特殊,不需要备份。基于此,排除这两张表使用【--ignore-table=db_name.table_name】;成功备份后发现中文出现乱码,百度了一下,可使用【--default-character-set=utf8】。


至此,完成备份数据库的bat编写完成。接下来就是考虑定时执行的问题啦~~windows可以设置任务计划,把这个bat放到任务计划里面即可。


在执行bat过程中,mysql的用户名/密码都被暴露了出来,那么能不能让bat在后台偷偷跑呢??关于这个问题,网上给出了很多答案,这里记录其中一种:

2、新建一个vbs文件;

(1)在文件内加入:createobject("wscript.shell").run "E:\mysql_back\mysql_backup.bat",0;

注:E:\mysql_back\mysql_backup.bat是备份数据库的bat的路径!!

(2)把该vbs文件加入到任务计划。


在操作过程中还发现一个问题:把备份好的sql还原到数据库提示中文乱码,关于这个问题也在网上找到了方案,以下是完整的还原语句:

>mysql -hlocalhost --default-character-set=utf8 -uroot -phhhh ddhost3 < E:\BACK\ddhost_20160428\ddhost.sql


你可能感兴趣的:(mysql)