本文原创,转载请说明出处
需求:要对内网的机器上的MySQL数据库做热备.主机,10.21.11.70
.从机,10.21.11.38.每天凌晨0点从70上同步到38上.由于项目本身是点菜系统,如果用C#写程序将38上没有的菜品信息从70复制到38上,那么将出现ID不同的情况(ID是自动增长的).所以,这我们采用的是将38库的表都删除重建的方式,由于数据库数据不多,所以性能不高并不妨碍.
找了几天资料,终于确认最简单的解决方案:CMD.
以下CMD 根据网络资料修改而成.
参考地址:http://micate.me/windows-mysql-backup.note?replytocom=129
@echo off & setlocal ENABLEEXTENSIONS
:: ---------- 配置项 ----------
:: 备份放置的路径,加 \
set BACKUP_PATH=D:\Backup\
:: 要备份的服务器IP
set HOST=10.21.11.70
:: 要备份的服务器端口
set PORT=3306
:: 要备份的数据库名称,多个用空格分隔
set DATABASES=mobileserver_tangla
:: 要备份的数据库名称,多个用空格分隔
set DATABASES=mobileserver_tangla
:: MySQL 用户名
set USERNAME=root
:: MySQL 密码
set PASSWORD=
:: MySQL Bin 目录,加 \
:: 如果可以直接使用 mysqldump(安装时添加 MySQL Bin 目录到了环境变量),此处留空即可
set MYSQL=
:: WinRAR 自带命令行工具的可执行文件路径,长文件名注意用 Dos 长文件名书写方式
set WINRAR=C:\Program Files\WinRAR\Rar.exe
:: ---------- 以下请勿修改 ----------
set YEAR=�te:~0,4%
set MONTH=�te:~5,2%
set DAY=�te:~8,2%
:: 如果在 dos 下输入 time 返回的不是 24 小时制(没有 0 填充),请自行修改此处
set DIR=�CKUP_PATH%%YEAR%%MONTH%\
set ADDON=%YEAR%%MONTH%�Y%
:: create dir
if not exist %DIR% (
mkdir %DIR% 2>nul
)
if not exist %DIR% (
echo Backup path: %DIR% not exists, create dir failed.
goto exit
)
cd /d %DIR%
:: backup
echo Start dump databases...
for %%D in (�TABASES%) do (
echo Dumping database %%D ...
%MYSQL%mysqldump --host %HOST% --port %PORT% -u%USERNAME%
-p%PASSWORD% %%D > %%D.�DON%.sql
2>nul
)
echo Done
还原数据库请将 %MYSQL%mysqldump --host %HOST% --port %PORT%
-u%USERNAME% -p%PASSWORD% %%D > %%D.�DON%.sql
2>nul修改成
%MYSQL%mysql -uroot -p
mobileserver_tangla
本问中的备份不包括存储过程和自定义函数.
关于cmd命令的参考:http://freeskywcy.iteye.com/blog/
关于MySQl的命令的参考:http://www.cppblog.com/keigoliye/default.html?page=2
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/99584.html