linux:mysql数据库备份
使用shell脚本进行数据库的定时备份
1.首先确定需要备份的数据库
1>进入数据库 输入指令 mysql -uroot -p密码
2>查看mysql中有哪些数据库
输入指令 show databases;
3>我们这次选择dysmysql数据库进行备份
4>查看数据库中的数据
首先使用数据库 use dysmysql;
然后查询这个数据库下的所有表 show tables;
5>准备操作结束
2.编写shell脚本
1>在usr/sbin目录下创建mysql_db_backup.sh 文件,使用vim编辑器打开
2>写入代码
#!/bin/bash#
1.备份目录BACKUP
=/data/backup/db# 当前时间
DATETIME
=$(date +%Y-%m-%d_%H%M%S)echo $DATETIME
# 数据库的地址
HOST
=localhost# 数据库的用户名
DB_USER
=root#数据库的密码
DB_PW
=root#备份的数据库名
DATABASE
=dysmysql#创建备份目录 如果不存在就创建
[
! -d "${BACKUP}/${DATETIME}" ] && mkdir -p "${BACKUP}/${DATETIME}"# 备份数据库
mysqldump
-u${DB_USER} -p${DB_PW} --host=${HOST} -q -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/$DATETIME.sql.gz# 将文件处理成 tar.gz
cd ${BACKUP}
tar
-zcvf $DATETIME.tar.gz ${DATETIME}# 删除对应的备份目录
rm
-rf ${BACKUP}/${DATETIME}# 删除十天前的备份文件
find ${BACKUP}
-atime +10 -name "*.tar.gz" -exec rm -rf {} ;echo
"备份数据库${DATABASE} 成功"
3>按esc键打出英文冒号,输入wq保存并退出
4>按esc键然后输入英文冒号继续输入wq,保存并退出。
5>执行该脚本 sh mysql_db_backup.sh
6>编写定时指令
输入指令crontab -e
编写代码
302 * * * /usr/sbin/mysql_db_backup.sh
此条代码意思为每天两点半执行该脚本 进行备份
7>查看指令 crontab -l
3.查看备份内容是否正确
1>切换到压缩包目录下
2>解压压缩包 gunzip 2021-08-21_221458.sql.gz
3>发现数据已经正常备份
USE `dysmysql`;----
Table structure for table `myorder`--
DROPTABLEIFEXISTS `myorder`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `myorder` (
`id` int DEFAULT NULL,
`name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `myorder`
--
LOCK TABLES `myorder` WRITE;
/*!40000 ALTER TABLE `myorder` DISABLE KEYS */;
INSERT INTO `myorder` VALUES (100,"dog");
/*!40000 ALTER TABLE `myorder` ENABLE KEYS */;
UNLOCK TABLES;
以上是 linux:mysql数据库备份 的全部内容, 来源链接: utcz.com/z/519881.html