0%

win 环境下定时备份 mysql

本文主要介绍在 win 环境下, 定时备份 mysql

通过脚本自动备份

  1. 创建自动备份脚本: mysql-auto-backup.bat, 并在脚本内写入:
1
2
set "Ymd=%date:~0,4%-%date:~5,2%-%date:~8,2%"
mysqldump -uroot --default-character-set=utf8 -ppassword database > D:\filename%Ymd%.sql
  1. 创建定时任务, 让电脑定时执行这个脚本

关于乱码

关于乱码网上有很多帖子了, 不再赘述.

但要讲一个我在备份时遇到的乱码问题:

在 cmd 上 dump 数据库, 编码为 utf8, 能正常 dump 数据库, 中文也正常.

但用 powershell 时, dump 下来的备份文件编码变成了 utf16e, 这也导致了中文乱码.

来自 stackoverflow参考链接 的解决方法:

参考第一个链接只用 Out-File 生成文件还是会乱码, 结合第二个设置 powershell 控制台编码就正常了:

1
2
PS C:\Users> [System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8;
PS C:\Users> mysqldump -uroot --default-character-set=utf8 -ppassword database | Out-File D:\mysql.sql -Encoding utf8