暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL数据库定时备份

编程经验共享 2023-02-08
184

一:首先来了解一下mysql备份的基础mysqldump功能

格式:mysqldump -h链接ip -P(大写)端口 -u用户名 -p密码数据库名>保存的文件路径名.sql

示例:mysqldump -h132.72.192.432 -P3307 -uroot -p8888 htgl > bak.sql;

输入这个命令即可导出一个数据库备份的sql文件

二:接下来就是了解一下Linux的定时器功能

linux定时器是通过/etc/rc.d/init.d这个守护进程服务来实现的;他的命令格式如下:

crontab [-u user] [-l | -r | -e] [-i] [-s]

-u 指定用户
-e 编辑当前用户的crontab
-l 查看当前用户下的定时任务
-r 删除当前用户下的定时任务
注意:-u 后面是用户名如root用户,没有指定用户时默认为root用户,列如:crontab -l

1:显示crontab当前用户下的定时任务:crontab -l
2:编辑www用户的定时任务:crontab -u www -e

3:按i进入编辑模式内容如下:

更详细的crontab内容可以查看我的另一篇【Linux定时任务】

 

三:编写一个shell脚本,再用crontab定时启动即可

在home目录下创建一个shell脚本文件(autoBak.sh),其内容如下:

#!/bin/sh

db_user="数据库用户名"
db_passwd="数据库密码"
db_name="数据库名"
db_host="数据库链接的IP地址"

back_dir="数据库备份的sql文件的存储路径"

name="$(date +"%Y%m%d%H%M%S")"
# 只备份数据,不备份表结构
/usr/bin/mysqldump -h$db_host -u$db_user -p$db_passwd $db_name |gzip >$back_dir/$name.sql.gz
# 备份表结构及数据
/usr/bin/mysqldump -u$db_user -p$db_passwd -t $db_name |gzip >$back_dir/$name.data.sql.gz

 四:crontab定时任务:

20 17 * * * bin/sh data/shell/autoBak.sh
五:mysql数据导入:
      方法一:
mysql -u$db_user  -p$db_password  $db_name < $name.sql
      方法二:
 1,登录mysql :
mysql -u$db_user -p$db_password;

2,创建空数据库:
create database 数据库名 character set utf8mb4;

3,进入某个数据:
use 数据库;

4,设置编码:
set names utf8;

5,导入数据:
source sql文件路径

PS:防止找不到本篇文章,可以收藏点赞,方便翻阅查找哦。
你的每个点赞和在看,我们都感恩在心


文章转载自编程经验共享,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论