mysql备份数据库脚本
mysql备份用自带的备份工具mysqlmp
每天自动执行用cron工具,把mysql的备份命令放在.sh文件里面
.sh文件放在/etc/cron.daily目录,就会每天自动执行了。
B. mysql数据库如何备份
MySQL数据库备份与还原
备份和恢复数据
生成SQL脚本
在控制台使用mysqlmp命令可以用来生成指定数据库的脚本文本,但要注意,脚本文本中只包含数据库的内容,而不会存在创建数据库的语句!所以在恢复数据时,还需要自已手动创建一个数据库之后再去恢复数据。
mysqlmp –u用户名 –p密码 数据库名>生成的脚本文件路径
现在可以在C盘下找到mydb1.sql文件了!
注意,mysqlmp命令是在Windows控制台下执行,无需登录mysql!!!
执行SQL脚本
执行SQL脚本需要登录mysql,然后进入指定数据库,才可以执行SQL脚本!!!
执行SQL脚本不只是用来恢复数据库,也可以在平时编写SQL脚本,然后使用执行SQL 脚本来操作数据库!大家都知道,在黑屏下编写SQL语句时,就算发现了错误,可能也不能修改了。所以我建议大家使用脚本文件来编写SQL代码,然后执行之!
SOURCE C:\mydb1.sql
注意,在执行脚本时需要先行核查当前数据库中的表是否与脚本文件中的语句有冲突!例如在脚本文件中存在create table a的语句,而当前数据库中已经存在了a表,那么就会出错!
还可以通过下面的方式来执行脚本文件:
mysql -uroot -p123 mydb1<c:\mydb1.sql
mysql –u用户名 –p密码 数据库<要执行脚本文件路径
这种方式无需登录mysql!
C. 求一份自动备份mysql数据库的脚本。
@rem---------------------------创建备份目录-----------------------------------------
@echooff
setbackup_dir=D:/数据备份
setbackup_dir_run=D:/数据备份/run
setbackup_dir_land=D:/数据备份/land
setlog_file=%backup_dir%/backup_record.log
ifnotexist"%backup_dir_run%"md"%backup_dir_run%"
ifnotexist"%backup_dir_land%"md"%backup_dir_land%"
@rem---------------------------创建备份目录结束-------------------------------------
@rem---------------------------取得当前时间-----------------------------------------
setyear=%date:~0,4%
::当前年
setmonth=%date:~5,2%
::当前月
setday=%date:~8,2%
::当前日
sethour=%time:~0,2%
::当前小时
setminute=%time:~3,2%
::当前分钟
setmydate=%year%%month%%day%
setmytime=%hour%%minute%
@rem---------------------------取得当前时间结束-------------------------------------
@rem---------------------------设置标签-------------------------------------
settag_long=echo-------------------------------------------------->>%log_file%
settag_short=echo...>>%log_file%
@rem---------------------------设置结束-------------------------------------
@rem---------------------------备份数据库-------------------------------------------
%tag_long%
echo-------------正在执行MySQL数据库备份[%date%%time%]-------------->>%log_file%
%tag_long%
%tag_short%
%tag_short%
setcmd_mysql=D:/WEBROOT/mysql50/bin/mysqlmp-R-uroot-p111
echo导出d_land_run...>>%backup_dir%/backup_record.log
setsqlfile_d_land_run="%backup_dir_land_run%/d_run%mydate%%mytime%.sql"
ifexist%sqlfile_d_land_run%del%sqlfile_d_land_run%
%cmd_mysql%d_land_run>%sqlfile_d_land_run%
echo导出d_land_run结束...>>%log_file%
%tag_short%
%tag_short%echo导出d_run...>>%backup_dir%/backup_record.log
setsqlfile_d_run="%backup_dir_run%/d_run%mydate%%mytime%.sql"
ifexist%sqlfile_d_run%del%sqlfile_d_run%
%cmd_mysql%d_run>%sqlfile_d_run%
echo导出d_run结束...>>%log_file%
%tag_short%
%tag_short%echo导出d_run_shop...>>%log_file%
setsqlfile_d_run_shop="%backup_dir_run%/d_run_shop%mydate%%mytime%.sql"
ifexist%sqlfile_d_run_shop%del%sqlfile_d_run_shop%
%cmd_mysql%d_run_shop>%sqlfile_d_run_shop%
echo导出d_run_shop结束...>>%log_file%%tag_short%
%tag_short%echo导出bugs...>>%log_file%
setsqlfile_bugs="%backup_dir_land%/bugs%mydate%%mytime%.sql"
ifexist%sqlfile_bugs%del%sqlfile_bugs%
%cmd_mysql%bugs>%sqlfile_bugs%
echo导出bugs结束...>>%log_file%%tag_short%
%tag_short%echo导出discuz...>>%log_file%
setsqlfile_discuz="%backup_dir_land%/discuz%mydate%%mytime%.sql"
ifexist%sqlfile_discuz%del%sqlfile_discuz%
%cmd_mysql%discuz>%sqlfile_discuz%
echo导出discuz结束...>>%log_file%
%tag_short%
%tag_short%
echo导出land...>>%log_file%
setsqlfile_land="%backup_dir_land%/land%mydate%%mytime%.sql"
ifexist%sqlfile_land%del%sqlfile_land%
%cmd_mysql%land>%sqlfile_land%
echo导出land结束...>>%log_file%
%tag_short%
%tag_short%
echo导出landwiki...>>%log_file%
setsqlfile_landwiki="%backup_dir_land%/landwiki%mydate%%mytime%.sql"
ifexist%sqlfile_landwiki%del%sqlfile_landwiki%
%cmd_mysql%landwiki>%sqlfile_landwiki%
echo导出landwiki结束...>>%log_file%
%tag_short%
%tag_short%
echo导出mysql...>>%log_file%
setsqlfile_mysql="%backup_dir_land%/mysql%mydate%%mytime%.sql"
ifexist%sqlfile_mysql%del%sqlfile_mysql%
%cmd_mysql%mysql>%sqlfile_mysql%
echo导出mysql结束...>>%log_file%
%tag_short%
%tag_short%
echo导出wikidb...>>%log_file%
setsqlfile_wikidb="%backup_dir_land%/wikidb%mydate%%mytime%.sql"
ifexist%sqlfile_wikidb%del%sqlfile_wikidb%
%cmd_mysql%wikidb>%sqlfile_wikidb%
echo导出wikidb结束...>>%log_file%
%tag_short%
%tag_short%
echo-------------备份完成![%date%%time%]-------------->>%log_file%
@rem---------------------------备份数据库结束---------------------------------------
D. Mysql数据库备份的几种方法
1、复制date文件夹备份
============================
假想环境:
MySQL 安装位置:C:\MySQL
论坛数据库名称为:bbs
数据库备份目的地:C:\db_bak\
============================
新建db_bak.bat,写入以下代码
*******************************Code Start*****************************
net stop mysql
x c:\mysql\data\bbs\*.* c:\db_bak\bbs\%date:~0,10%\ /S /I
net start mysql
*******************************Code End *****************************
然后使用Windows的“计划任务”定时执行该批处理脚本即可。(例如:每天凌晨3点执行back_db.bat)
解
释:备份和恢复的操作都比较简单,完整性比较高,控制备份周期比较灵活,例如,用%date:~0,10%。此方法适合有独立主机但对mysql没有管理
经验的用户。缺点是占用空间比较多,备份期间mysql会短时间断开(例如:针对30M左右的数据库耗时5s左右),针对%date:~0,10%的用法
参考 。
2、mysqlmp备份成sql文件
==============
假想环境:
MySQL 安装位置:C:\MySQL
论坛数据库名称为:bbs
MySQL root 密码:123456
数据库备份目的地:D:\db_backup\
脚本:
rem *******************************Code Start*****************************
@echo off
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
C:\MySQL\bin\mysqlmp --opt -u root --password=123456 bbs > D:\db_backup\bbs_%Ymd%.sql
@echo on
rem *******************************Code End*****************************
将以上代码保存为backup_db.bat
然后使用Windows的“计划任务”定时执行该脚本即可。(例如:每天凌晨5点执行back_db.bat)
说明:此方法可以不用关闭数据库,并且可以按每一天的时间来名称备份文件。
通过%date:~5,2%来组合得出当前日期,组合的效果为yyyymmdd,date命令得到的日期格式默认为yyyy-mm-dd(如果不是此格式可以通过pause命令来暂停命令行窗口看通过%date:~,20%得到的当前计算机日期格式),所以通过%date:~5,2%即可得到日期中的第五个字符开始的两个字符,例如今天为2009-02-05,通过%date:~5,2%则可以得到02。(日期的字符串的下标是从0开始的)
3、利用WinRAR对MySQL数据库进行定时备份。
对于MySQL的备份,最好的方法就是直接备份MySQL数据库的Data目录。下面提供了一个利用WinRAR来对Data目录进行定时备份的方法。
首先当然要把WinRAR安装到计算机上。
将下面的命令写入到一个文本文件里
*******************************Code Start*****************************
net stop mysql
c:\progra~1\winrar\winrar a -ag -k -r -s d:\mysql.rar d:\mysql\data
net start mysql
*******************************Code End*****************************
保存,然后将文本文件的扩展名修改成CMD。进入控制面版,打开计划任务,双击“添加计划任务”。在计划任务向导中找到刚才的CMD文件,接着为这个任务指定一个运行时间和运行时使用的账号密码就可以了。
这种方法缺点是占用时间比较多,备份期间压缩需要时间,mysql断开比第一种方法更多的时间,但是对于文件命名很好。
E. linux自动备份mysql数据库脚本
脚本最好写出来。否则怎么知道。
通过经验来看。你是用mysqlhot还是mysqlmp来备份的?
如果没有安装相应的工具,比如mysqlhot就要手动安装。。。
或者执行进验证的信息不对。都可能造成你说的现象,
你要单独运行一下脚本中导出mysql数据库的部分。
F. linux系统下mySQL数据库 备份方法和脚本
数据库备份
1.创建个备份存储目录
mkdir
/root/backup/
2.以下内容写到dbbackup.sh
#!/bin/bash
cd
/root/backup/
mysqlmp
-uroot
-pmima123
datatest
>/root/backup/datatest`date
+%Y-%m-%d`.sql
mysqlmp
-uroot
-pmima123
datatest1
>/root/backup/datatest1`date
+%Y-%m-%d`.sql
chmod
+x
dbbackup.sh
G. Linux 怎么shell脚本定时备份mysql数据库
每天定时备份mysql数据库任务,删除指定天数前的数据,保留指定天的数据;
需求:
1,每天4点备份mysql数据;
2,为节省空间,删除超过3个月的所有备份数据;
3,删除超过7天的备份数据,保留3个月里的 10号 20号 30号的备份数据;
#创建shell文件
vim backup_mysql.sh
mysqlmp -uroot -p123456 --all-databases > /data/dbdata/mysqlbak/`date +%Y%m%d`.sql
find /data/dbdata/mysqlbak/ -mtime +7 -name '*[1-9].sql' -exec rm -rf {} \;
find /data/dbdata/mysqlbak/ -mtime +92 -name '*.sql' -exec rm -rf {} \;
#创建定时任务
crontab –e
0 4 * * * /data/dbdata/backup_mysql.sh
H. Mysql 数据库怎么备份成指定名称的数据库脚本文件
那个,备份完了要用记事本将文件打开。将DB1的名称改变成DB2,然后再恢复即可。建议使用NotePad++等软件编辑。