Mysql数据库每天定时备份

article/2025/10/6 1:55:13

1.先检查安装crontabs

yum install crontabs

2.在home目录下指定路径新建文件夹

 

3.新建执行脚本,在里面写入命令

touch mysql_backup.sh

shell脚本如下:

#!/bin/bash
#保存备份个数,备份14天数据


number=14
#备份保存路径
backup_dir=/home/tjgeo/back/mysqlbak
#日期
dd=`date +%Y-%m-%d-%H-%M-%S`
#备份工具
tool=mysqldump
#用户名
username=XXX
#密码
password=XXX

#将要备份的数据库  (全库备份)
database_name=all

#如果文件夹不存在则创建
if [ ! -d $backup_dir ]; 
then     
    mkdir -p $backup_dir; 
fi
echo  '****************************************************************************'>> $backup_dir/log.log
echo '1、开始备份数据:文件名称:'$database_name'-'$dd'.tar.gz开始时间:'$dd>> $backup_dir/log.log


#备份全库
$tool  --socket=/home/xxx/mysql/mysql.sock  -u $username -p$password  -A> $backup_dir/$database_name-$dd.sql

cd  $backup_dir

#压缩备份文件
tar -czf        $database_name-$dd.tar.gz   $database_name-$dd.sql

#删除 原备份文件
rm      $backup_dir/$database_name-$dd.sql

#写创建备份日志
echo '2、创建备份文件 '$backup_dir'/'$database_name'-'$dd'.tar.gz' >> $backup_dir/log.log

#找出需要删除的备份
delfile=`ls -l -crt  $backup_dir/*.tar.gz | awk '{print $9 }' | head -1`

#判断现在的备份数量是否大于$number
count=`ls -l -crt  $backup_dir/*.tar.gz | awk '{print $9 }' | wc -l`

ii=1
if [ $count -gt $number ]
then
  #删除最早生成的备份,只保留number数量的备份
  rm $delfile
  #写删除文件日志
  echo '3."&ii"删除14天前备份 '$delfile>> $backup_dir/log.log
  ii=ii+1
fi

  echo '4.备份完成' >> $backup_dir/log.log
  echo  '*****************************************'>> $backup_dir/log.log
 

4.在命令行写入crontab -e

写入每天两点执行 0 2 * * *   /home/tjgeo/back/mysqlbak/mysql_backup.sh

5.crontab常用命令,启动服务

service crond start //启动服务 
service crond stop //关闭服务 
service crond restart //重启服务 
service crond reload //重新载入配置 
service crond status //查看服务状态

6.在/var/spool/mail中的root中可以查看服务日志

7.mysql_backup.sh提示权限不够,可以chmod 777 mysql_backup.sh

8.提示以下报错

crond: /usr/sbin/sendmail: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

mysql8.0是二进制包安装的,位置是/usr/local/mysql8下,然后我看了下/usr/local/mysql8/lib/下是没有libmysqlclient.so.18这个文件的.

这时候你可以在其他安装了mysql数据库的服务器上查找下这个文件

# find / -name libmysqlclient.so.18
/usr/lib64/mysql/libmysqlclient.so.18ll /usr/lib64/mysql/
总用量 19116
lrwxrwxrwx  1 root root      20 2月   7 2021 libmysqlclient_r.so.18 -> libmysqlclient.so.18
lrwxrwxrwx  1 root root      24 2月   7 2021 libmysqlclient_r.so.18.1.0 -> libmysqlclient.so.18.1.0
lrwxrwxrwx  1 root root      24 2月   7 2021 libmysqlclient.so.18 -> libmysqlclient.so.18.1.0
-rwxr-xr-x  1 root root 9578168 6月  10 2019 libmysqlclient.so.18.1.0
lrwxrwxrwx  1 root root      25 2月   7 2021 libmysqlclient.so.20 -> libmysqlclient.so.20.3.14
-rwxr-xr-x  1 root root 9989088 6月  10 2019 libmysqlclient.so.20.3.14
drwxr-xr-x  4 root root      28 2月   7 2021 mecab
drwxr-xr-x. 3 root root    4096 2月   7 2021 plugin

此时将 libmysqlclient.so.18.1.0 这个文件下载下来然后上传到缺少libmysqlclient.so.18文件的服务器上的/usr/local/mysql8/lib/目录下,然后记得给执行权限和做本地软连接


# chmod +x  libmysqlclient.so.18.1.0
在本地创建文件软连接
# ln -s libmysqlclient.so.18.1.0  libmysqlclient.so.18
# chown mysql:mysql libmysqlclient.so.18*
ll
总用量 145904
-rw-r--r-- 1 mysql mysql 106474328 12月 18 01:50 libmysqlclient.a
lrwxrwxrwx 1 mysql mysql        20 12月 18 02:28 libmysqlclient.so -> libmysqlclient.so.21
lrwxrwxrwx 1 root  root         24 6月   1 11:06 libmysqlclient.so.18 -> libmysqlclient.so.18.1.0
-rwxr-xr-x 1 mysql mysql   9578168 6月   1 11:04 libmysqlclient.so.18.1.0
lrwxrwxrwx 1 mysql mysql        25 12月 18 02:28 libmysqlclient.so.21 -> libmysqlclient.so.21.2.28
-rwxr-xr-x 1 mysql mysql  33294176 12月 18 01:49 libmysqlclient.so.21.2.28
-rw-r--r-- 1 mysql mysql     44630 12月 18 01:46 libmysqlservices.a
drwxr-xr-x 4 mysql mysql        28 12月 18 02:28 mecab
drwxr-xr-x 2 mysql mysql        28 12月 18 02:28 pkgconfig
drwxr-xr-x 3 mysql mysql      4096 12月 18 02:28 plugin
drwxr-xr-x 4 mysql mysql      4096 12月 18 02:28 private

然后修改下/etc/ld.so.conf文件

# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf在/etc/ld.so.conf.d/下创建mysql.conf文件并加入/usr/local/mysql8/lib/
# cat /etc/ld.so.conf.d/mysql.conf 
/usr/local/mysql8/lib/

再运行:/sbin/ldconfig -v 更新一下配置即可。

/sbin/ldconfig -v

        


http://chatgpt.dhexx.cn/article/aF8pPuEG.shtml

相关文章

Mysql定时备份

linux下如何实现mysql数据库每天定时自动备份 由于客户要求,需要将数据库进行每天定时自动备份,所以网上找了各种方式就行了测试,遇到很多坑,特此记录下来,步骤是东拼西凑的,虽然也是网上找的,…

Windows下 mysql定时备份

** 使用mysqldump进行数据库备份 ** mysql数据库自带备份命令mysqldump,可对数据库进行备份操作 最简单的备份是将数据库备份至本地,生成 **.sql文件 编写备份脚本文件 (创建一个txt文件,写入批处理脚本,再将文件的后缀改为.ba…

MySQL定时备份数据库(全库备份)

MySQL定时备份数据库(全库备份) 一、MySQL数据备份 1.1、 mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法: …

mysql定时自动备份数据库

我们都知道数据是无价,如果不对数据进行备份,相当是让数据在裸跑,一旦服务器出问题,只有哭的份了。下面将介绍mysql数据库的自动备份,大家可根据情况自行选择将备份数据存放在哪里。 第一种,数据跑在服务器…

windows系统mysql定时备份

一.介绍 本文章主要介绍了windows系统下如何创建mysql定时备份任务,目的:一是数据无价,一旦数据丢失,功亏一篑;而是将重复性的工作交给机器来做,省去人工处理成本。 二.创建bat任务脚本 1.新建txt文档 2.打…

MySQL 定时备份数据库(非常全)

一. mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法: #MySQLdump常用 mysqldump -u root -p --databases 数据库1 数据库2 > xxx.s…

实战-MySQL定时增量备份(2)

阅读本文大约需要 9 分钟 实战-MySQL定时全量备份(1) 实战-MySQL定时增量备份(2) 实战-将MySQL备份上传到私有云(3) 概要 引言 增量备份 恢复增量备份 定时备份 引言 在产品上线之后,我们的数据是相当重要的&…

MySQL 数据库定时备份

1.编写BASH维护固定数量备份文件 在Linux中,使用vi或者vim编写脚本内容并命名为:mysql_dumps.sh #!/bin/bash #保存备份个数,备份31天数据 number31 #备份保存路径 backup_dir/root/mysqlbackup #日期 dddate %Y-%m-%d-%H-%M-%S #备份工具 …

Linux定时备份MySQL

Linux定时备份MySQL 1.备份脚本2.赋予脚本执行权限3.添加定时任务4. crontab定时任务表达式5. 常见问题6. linux软连接7.参考链接: 阅读本文您将了解到: 定时备份数据库linux定时任务crontab定时任务表达式shell脚本变量命名规则linux 软连接的使用vim使用技巧 1.备份脚本 用vi…

MySQL 如何定时备份数据库

目录 1.mysqldump命令备份数据 2.mysqldump常用操作示例 2.1. 备份全部数据库的数据和结构 2.2.备份全部数据库的结构(加 -d 参数) 2.3. 备份全部数据库的数据(加 -t 参数) 2.4.备份单个数据库的数据和结构(,数据库名mydb) 2.5. 备份单个数据库的…

MySQL 定时备份数据库(非常全),值得收藏!

在操作数据过程中,可能会导致数据错误,甚至数据库奔溃,而有效的定时备份能很好地保护数据库。本篇文章主要讲述了几种方法进行 MySQL 定时备份数据库。 一. mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工…

mysql数据库定时备份

1 环境检查 1. 执行本手册前,请正确安装Mysql数据库,并知晓数据库用户名和密码; 2. 执行本手册前,请先确定Mysql数据库数据要储存的天数;默认30 2 批处理文件配置 当前步骤主要实现以下目标配置: 配置…

mysql实现定时备份

1、编写脚本xxx.bat echo off echo 设置MySql数据库的连接信息 set host127.0.0.1 set port3306 set userroot set pass123456 echo 设置要备份MySql数据库名称 set dbnameprojectmonitoring echo 获取当天的日期格式,例如:2022-12-13-14-30-40set back…

MySQL数据库定期自动备份(定时任务)

一、脚本备份; 1、新建一个backupDB.txt文件,然后通过重命名修改文件后缀为.bat,将 backupDB.bat 放置在 D:/mysql5.7目录下,文件内容如下: echo off set h%time:~0,2% set h%h: 0% set hhmiss%date:~0,4%%date:~5,2…

【Axure】Axure RP 9 下载、短期试用破解安装和汉化步骤 —— 可供安装参考,短期试用,目前授权码已逐渐失效

目录 一、Axure RP 9 下载 二、Axure RP 9 安装 三、Axure RP 9 破解 四、Axure RP 9 汉化 一、Axure RP 9 下载 (1)最新版本 Axure RP 9 下载地址(Mac & window):点击前往下载 (2)汉化…

Axure PR9的安装与激活

一、Axure安装包与汉化包的下载 概述:2021/04/30 Axure官网发布了Axure RP 10的正式版,但因为目前市面上还普遍再用Axure RP 8和Axure RP 9(Axure RP 10不兼容以前版本),顾小编还是装了Axure RP 9 下载:登录Axure中文学习网&…

原型设计工具:Axure RP9 中文激活版 win/mac

Axure RP 9 是一款强大的原型设计工具,它能够帮助用户快速创建高质量的交互原型、线框图、流程图和文档等。 ​Axure RP 9 具有以下特点: 强大的交互能力:Axure RP 9 提供了丰富的交互组件和事件,可以轻松实现交互功能&#xff0…

数据库相关中间件介绍

数据库相关中间件介绍 详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt412 这里主要介绍互联网行业内有关数据库的相关中间件。数据库相关平台主要解决以下三个方面的问题: 为海量前台数据提供高性能、大容量、高可用性的访问 为数…

Mysql 中间件 oneProxy总结

建议使用之前把官方的文档全部通读一遍 这里提供一个我的网盘地址oneproxy 百度网盘 0. 先对 oneproxy 有个大概的了解,知道他所处的位置 1. MySQL服务器 创建test用户,密码test存在test数据库确认oneproxy能登录 1.1 注意事项 所有MySQL节点有相同的用户名和口…

mysql几种中间件对比

网上找到的图 重点比较几个 1.atlas 基于mysql-proxy,360团队 优点: 配置简单,支持读写分离 缺点: 年份久,功能有限 地址:https://github.com/Qihoo360/Atlas/wiki/Atlas%E5%8A%9F%E8%83%BD%E7%89%B9%E7%82%B9FAQ 2.my…