怎么定时自动备份mysql数据表
发布网友
发布时间:2022-04-22 10:07
我来回答
共3个回答
懂视网
时间:2022-04-30 00:07
编写一个shell脚本每天16:30备份mysql数据并压缩打包(打包文件按照当天的日期命名)放到/root/data
#cd /root
#vim mysqlbackup.sh
#!/bin/bash
time=`date +%Y-%m-%d`
backupdir=/root/data
if [ ! -d "$backupdir" ]
then
mkdir -p $backupdir
fi
if [ -f "$time"_all_databases.sql ]
then
rm -rf "$time"_all_databases.sql
fi
cd $backupdir
/usr/bin/mysqldump -uroot -pmysql.rzrk --all-databases > "$time"_all_databases.sql
/bin/tar -czf "$time"_all_databases.sql.tar.gz "$time"_all_databases.sql
rm -rf "$time"_all_databases.sql
sed -i ‘/mysqlbackup.sh/d‘ /var/spool/cron/root
echo ‘30 16 * * * /root/mysqlbackup.sh‘ >> /var/spool/cron/root
#chmod +x mysqlbackup.sh
注释:
1 mysqldump --all-databases 表示备份mysql中所有的数据库。
2 date +‘%Y-%m-%d‘ == date +%F
3 crontab -l 编辑的配置文件在/var/spool/cron下(redhat的),suse的在/var/spool/cron/tabs下
本文出自 “天道酬勤” 博客,请务必保留此出处http://luzhi1024.blog.51cto.com/8845546/1654077
写一个脚本定时自动备份mysql到指定目录
标签:mysql 命名 自动备份 mysqldump
热心网友
时间:2022-04-29 21:15
一、对于Windows主机
==============
假想环境:
MySQL
安装位置:C:\MySQL
论坛数据库名称为:bbs
MySQL
root
密码:123456
数据库备份目的地:D:\db_backup\
@echo
off
C:\MySQL\bin\mysqladmin
-u
root
–password=123456
shutdown
C:\MySQL\bin\mysqlmp
–opt
-u
root
–password=123456
bbs
>
D:\db_backup\bbs.sql
C:\MySQL\bin\mysqld-nt
将以上代码保存为backup_db.bat
然后使用Windows的“计划任务”定时执行该脚本即可。(例如:每天凌晨5点执行back_db.bat)
二、对于Linux主机
===========
假想环境:
MySQL
安装位置:/usr/local/mysq
论坛数据库名称为:bbs
MySQL
root
密码:123456
数据库备份目的地:/var/db_backup/
#!
/bin/bash
/usr/local/mysql/bin/mysqladmin
-u
root
–password=123456
shutdown
/usr/local/mysql/bin/mysqlmp
–opt
-u
root
–password=123456
bbs
>
/var/db_backup/bbs.sql
/usr/local/mysql/bin/mysqld_safe
–user=mysql
&
将上述代码保存在/usr/local/sbin/backup_db.sh
对该脚本赋予执行权限:
#
chmod
755
/usr/local/sbin/backup_db.sh
加入crontab中自动执行:
#
crontab
-e
加入:
0
5
*
*
*
/usr/local/sbin/backup_db.sh
热心网友
时间:2022-04-29 22:33
1、导出整个数据库:包括表结构和数据部分
mysqlmp
-u
用户名
-p
数据库名
>
导出的文件名
例如:mysqlmp
–u
root
–p
111111
test1
>
test.sql
2、导出数据库中的一个表
mysqlmp
-u
用户名
-p
数据库名
表名>
导出的文件名
例如:mysqlmp
–u
root
–p
111111
test1
user1>
test1_user1.sql
3、导出多张表:
mysqlmp
–u
root
–p
111111
test1
user1
user2>
test1_user12.sql
4、导出一个数据库结构:只导出表结构,不包括数据部分
mysqlmp
-u
root
–p
111111
-d
--add-drop-table
test1>c:\test1.sql
-d
没有数据
--add-drop-table
在每个
create
语句之前增加一个
drop
table,以便于在每次导入
表到数据库中时,如果发现某个表存在,先进行删除。