mysql数据库备份shell
数据库的自动备份,可以减轻维护者的工作量也便于系统恢复,对于比较重要的数据库,最好还是设置下自动备份。
工具/原料
navicat for mysql
mysql 5.5
方法/步骤
打开navicat客户端,连上mysql后,双击左边你想要备份的数据库。点击“计划”,再点击“新建批处理作业”。
❷ 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
❸ vc中使用ShellExecute进行mysql数据库备份,一直不成功,有会的吗
你现在在本地命令行 测试一下 mysqlmp 命令 是否成功 和 生成备份文件.
如果成功了, 那么说明你 ShellExecute 函数使用方法有问题.
或者也可尝试更换其他函数 例如 WinExec 等等.
❹ shell怎么对mysql数据库进行自动备份
1、计划任务,每天1点备份
0 1 * * * /data/backup/backup-mysql.sh;
2、backup-mysql.sh内容,将每天备份的内容打包
#!/bin/sh
ymd=`date +%Y%m%d`
cd /data/backup
mysqlmp -uuser001 -p12345678 db001 > db001.sql
tar zcf db001-${ymd}.sql.gz db001.sql
3、restore.sh恢复数据
mysql -uuser001 -p12345678 -Ddb001 < db001.sql
❺ mysql 数据库如何备份,如图,
数据库备份,可以全量备份,也可以备份一部分
备份的方法也有很多种
如果是使用语句进行备份,那么只能导出数据的内容,不包括表的结构
需要先锁表,避免备份过程中表被更新
锁表语句:mysql>LOCK TABLES READ tbl_name;
然后导出数据:mysql>SELECT * INTO OUTFILE_tbl_name.bak‘ FROM tbl_name;
最后将表解锁:mysql>UNLOCK TABLES;
如果是使用工具 mysqlmp 进行备份,就不仅可以导出数据,还可以备份表结构
假如要备份数据库 db_name:shell> mydqlmp db_name
假如要把数据库备份到 bd_name.bak 中:shell> mydqlmp db_name>db_name.bak
还可以用直接拷贝的方法进行备份,也就是直接复制文件来备份数据
❻ Linux 怎么通过Shell脚本定时备份MySQL数据库
PATH=$PATH:$HOME/bin #备份目录 BackupPath="/home/mysql/backup" #备份文件名 BackupFile="dbbackup"$(date +%y%m%d_%H)".sql" #数据库的用户名及密码 user="root" passwd="Welcome@123" #检查备份目录是否存在 if !(test -d $BackupPath) then mkdir $BackupPath fi #使用mysql提供的mysqlmp备份脚本 /usr/local/mysql/bin/mysqlmp -u$user -p$passwd --allow-keywords --default-character-set=utf8 --set-charset -R -A --master-data=2 >"$BackupPath"/"$BackupFile" #删除三个月前的备份文件 find "$BackupPath" -name "dbbackup*[log,sql]" -type f -mtime +3 -exec rm -rf {} \;
❼ 使用shell脚本备份数据库。
在Linux上安装MySQL并建立测试库,编写shell脚本对此库使用mysqlmp进行定时备份和历史备份文件清理(保留3天),注意脚本的通用性和扩展性
1 mysq数据库的安装
[sql] view plain
#安装服务端
yum install mysql-server
yum install mysql-devel
#安装客户端
yum install mysql
#启动mysql
service mysqld start 或 /etc/init.d/mysqld start
#停止mysql
service mysqld stop
#设置密码
mysqladmin -u root password ***
#登录mysql
mysql -u root -p
2 创建测试数据库和表
[sql] view plain
<pre class="sql" name="code">#创建数据库
create database users;
#创建表
create tablse student(
id integer auto_increment not null primary key,
name varchar(30) );
[sql] view plain
#插入一条数据
insert into student(name) values("congju");
[sql] view plain
#查看数据
select * from student;
3 mysqlmp用法
mysql自带的工具,允许你以SQL命令集的形式将整个数据库导出到一个单独的文件中。
[sql] view plain
#将users数据库备份到/root/user.mp文件中
mysqlmp -u root -p users > /root/users.mp
4 利用shell脚本实现对users数据库的备份
[sql] view plain
#!/bin/bash
#保存备份个数
number=3
#备份保存路径
backup_dir=/root/mysqlbackup
#日期
dd=`date +%Y%m%d`
#备份工具
tool=mysqlmp
#用户名
❽ 怎样进行每日MYSQL数据库备份
可以将这个脚本放进crontab,每天凌晨执行一次,自动备份
这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。
#!/bin/bash
#This is a ShellScript For Auto DB Backup
#Powered by aspbiz
#Setting
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式
#默认情况下备份方式是tar,还可以是mysqlmp,mysqldot
#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz
DBName=mysql
DBUser=root
DBPasswd=
BackupPath=/root/
LogFile=/root/db.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqlmp
#BackupMethod=mysqlhot
#BackupMethod=tar
#Setting End
NewFile="$BackupPath"db$(date +%y%m%d).tgz
DumpFile="$BackupPath"db$(date +%y%m%d)
OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
#Delete Old File
if [ -f $OldFile ]
then
rm -f $OldFile >>$LogFile 2>&1
echo "[$OldFile]Delete Old File Success!" >> $LogFile
else
echo "[$OldFile]No Old Backup File!" >> $LogFile
fi
if [ -f $NewFile ]
then
echo "[$NewFile]The Backup File is exists,Can't Backup!" >>$LogFile
else
case $BackupMethod in
mysqlmp)
if [ -z $DBPasswd ]
then
mysqlmp -u $DBUser --opt $DBName >$DumpFile
else
mysqlmp -u $DBUser -p$DBPasswd --opt $DBName >$DumpFile
fi
tar czvf $NewFile $DumpFile >>$LogFile 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
rm -rf $DumpFile
;;
mysqlhot)
rm -rf $DumpFile
mkdir $DumpFile
if [ -z $DBPasswd ]
then
mysqlhot -u $DBUser $DBName $DumpFile >>$LogFile 2>&1
else
mysqlhot -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1
fi
tar czvf $NewFile $DumpFile >>$LogFile 2>&1
echo "[$NewFile]Backup Success!" >>$LogFile
rm -rf $DumpFile
;;
*)
/etc/init.d/mysqld stop >;/dev/null 2>&1
tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1
/etc/init.d/mysqld start >;/dev/null 2>&1
echo "[$NewFile]Backup Success!" >>$LogFile
;;
esac
fi
echo "-------------------------------------------" >>$LogFile
❾ 如何使用shell脚本每天自动备份mysql数据库
mysql备份用自带的备份工具mysqlmp
每天自动执行用cron工具,把mysql的备份命令放在.sh文件里面
.sh文件放在/etc/cron.daily目录,就会每天自动执行了。
❿ 编写一个shell脚本每天16:30备份mysql数据并压缩打包(打包文件按照当天日期命名)放到/root/data下
#!/bin/bash
date=$(date-d'+0days''+%Y-%m-%d')#声明一个变量,并赋值当天日期
cd/root/data#进入目录
mkdir$date#创建目录
mysqlmp-uusername-ppassworddb_name>$date"db_name.sql"#数据库备份,修改用户名密码,还有要备份数据库
tar-zcf$date".tar.gz"$date#压缩打包
rm-rf$date#删除源数据
保存为bak.sh,每天16:30备份定时任务,没有crontab命令:yum install vixie-cron
chmod +x /.../bak.sh
crontab -e
30 16 * * * /.../bak.sh