1、在C盘下创建一个目录,名称:Backup,然后将下面的代码保存为backup.bat
@echo 设置MySql数据库的IP set ipaddress=127.0.0.1 @echo 设置MySql数据库名 set db_name1=lxyy_db @echo 获取当天的日期格式yyyymmdd 20120311 set backup_date=%date:~0,4%%date:~5,2%%date:~8,2% set backup_date1=date:~0,10 @echo 设置mysqldump 备份的参数 set uid_test_db=-uroot -pdsideal -h %ipaddress% %db_name1% @echo 使用mysqldump对指定的MySql进行备份 mysqldump %uid_test_db% -R -E -e -l -F --max_allowed_packet=1048576 --net_buffer_length=16384 >%db_name1%_%backup_date%.sql @echo 用WinRar中的Rar命令对备份出的sql文件进行压缩,也可以换成其它的压缩命令 "C:\Program Files\WinRAR\Rar.exe" a %backup_date%.zip *.sql @echo 删除已压缩的备份文件 del *.sql
为什么会有上面的参数呢?
说明: mysql> -umysql用户名 -pmysql密码 要导入到的数据库名<要导入MYSQL的SQL文件路径 这样导入将会非常快,之前数小时才能导入的sql现在几十秒就可以完成了。
-l :进行读锁
-F:生成新的日志文件。
导出时候注意点: -e 使用包括几个VALUES列表的多行INSERT语法; --max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小; --net_buffer_length=XXX TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行。 注意:max_allowed_packet和net_buffer_length不能比目标数据库的设定数值 大,否则可能出错。 首先确定目标库的参数值
mysql> show variables like 'max_allowed_packet';
--max_allowed_packet=4194304
mysql>show variables like 'net_buffer_length';
--net_buffer_length=16384
根据参数值书写mysqldump命令,如: mysql>mysqldump -uroot -psupidea 要导入到的数据库名 goodclassification -e --max_allowed_packet=4194304 --net_buffer_length=16384 >要导入到的数据库名.net.sql
还原
使用命令行客户端连上mysql服务器,
mysql -uroot -pdsideal --default-character-set=utf8 --max_allowed_packet=1048576--net_buffer_length=16384
然后use lxyy_db进入需要还原的数据库,运行
source c:\lxyy_db_20130426.sql
导入备份。
二、开源中国的备份数据库命令:
date_str=`date +%Y%m%d` cd /data2/backup mysqldump -h localhost -u oschina --password=xxxx -R -E -e --max_allowed_packet=1048576 --net_buffer_length=16384 oscdb| gzip > /data2/backup/oschina_$date_str.sql.gz