0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

windows服务器备份mysql脚本

马哥Linux运维 来源:马哥Linux运维 2025-01-02 09:14 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、linux备份

使用python脚本,要求有python3和mysqldump

#! /usr/bin/python36
# -*- coding: utf-8 -*-

import os
import re
import datetime
import subprocess
##  需要备份数据库的登录信息
mysql_host = {
    'test': '10.10.3.207'
}
db_user = 'root'
db_passwd = 'PASSWD'
db_port = '3306'
##  备份存放的目录地址,没有回自动生成
back_dir = '/backups/mysql'

#  备份文件保存时间,单位:天,超过就删除
backup_keep_time = 30

# 此列表中的数据库将不会备份,下面是默认的基础数据库。
ignore_database = ['Database','information_schema','mysql','sys','performance_schema']

today = datetime.datetime.today().strftime('%Y%m%d%H%M')
for env in mysql_host:
    cmd = '/usr/local/mysql/bin/mysql -h {} -u{} -p{} -P{} -e "show databases"'.format(mysql_host.get(env),db_user,db_passwd,db_port)
    result = subprocess.check_output(cmd,shell=True,universal_newlines=True).split('
')
    databases = [i for i in result if i and i not in ignore_database]
    env_backup_dir = os.path.join(back_dir,env,today)
    os.system('mkdir -p {}'.format(env_backup_dir))

    for database in databases:
        back_path = os.path.join(env_backup_dir,'%s_%s.sql.gz' %(database,today))
        command = '/usr/local/mysql/bin/mysqldump -h {} -u{} -p{} -P{} {} --force |gzip > {}'.format(
            mysql_host.get(env),db_user,db_passwd,db_port,database,back_path
        )
        os.system(command)

    tmp = os.path.join(back_dir,env)
    for dirname in os.listdir(tmp):
        time1 = datetime.datetime.strptime(dirname,'%Y%m%d%H%M')
        time_dif = datetime.datetime.today()-time1
        times = time_dif.days
        if times >= backup_keep_time:
            for file in os.listdir(os.path.join(tmp,dirname)):
                os.remove(os.path.join(tmp,dirname,file))
            os.rmdir(os.path.join(tmp,dirname))

执行命令

python3 vim /usr/bin/mysql_bakup.py

会在/home/mysql下自动生成一个mysql_bak的文件夹,文件夹是以当时时间的文件夹,文件下就是数据库的备份

[root@localhost ~]# ls /backups/mysql/test/
202211151637

[root@localhost ~]# ls /backups/mysql/test/202211151637/
nacos_202211151637.sql.gz

二、windows服务器备份mysql脚本

@echo off

echo 设置MySql数据库的连接信息
set host=192.168.100.101
set port=3306
set user=root
set pass=ECIDI@hc99

echo 设置要备份MySql数据库名称
set dbname1=bns_pay
set dbname2=bns_qtnys
set dbname3=fawkes
set dbname4=fawkes_nacos
set dbname5=fawkes_patrol
set dbname6=qt_applet

echo 获取当天的日期格式,例如:20200902231300
set hour=%time:~0,2%
if "%time:~0,1%"==" " set hour=0%time:~1,1%

set backup_date=%Date:~0,4%%Date:~5,2%%Date:~8,2%%hour%%Time:~3,2%%Time:~6,2%

echo 设置备份文件的路径
set backupfile1=D:mysql_bak\%dbname1%-%backup_date%.sql
set backupfile2=D:mysql_bak\%dbname2%-%backup_date%.sql
set backupfile3=D:mysql_bak\%dbname3%-%backup_date%.sql
set backupfile4=D:mysql_bak\%dbname4%-%backup_date%.sql
set backupfile5=D:mysql_bak\%dbname5%-%backup_date%.sql
set backupfile6=D:mysql_bak\%dbname6%-%backup_date%.sql


echo 使用mysqldump对指定的MySql进行备份
echo 注意路径中有空格的要加上双引号

"D:mysql-8.0.30-winx64inmysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname1% > %backupfile1%
"D:mysql-8.0.30-winx64inmysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname2% > %backupfile2%
"D:mysql-8.0.30-winx64inmysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname3% > %backupfile3%
"D:mysql-8.0.30-winx64inmysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname4% > %backupfile4%
"D:mysql-8.0.30-winx64inmysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname5% > %backupfile5%
"D:mysql-8.0.30-winx64inmysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname6% > %backupfile6%


echo 删除过期文件,这里是超过30天就删除

forfiles /p D:mysql_bak /s /m *.sql /d -30 /c "cmd /c del @file /f"

链接:https://www.cnblogs.com/wangyuanguang/p/16893146.html

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    13

    文章

    10102

    浏览量

    90913
  • WINDOWS
    +关注

    关注

    4

    文章

    3697

    浏览量

    93251
  • MySQL
    +关注

    关注

    1

    文章

    897

    浏览量

    29242

原文标题:二、windows服务器备份mysql脚本

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    恒讯科技解析:如何在日本服务器上安装和配置数据库(如MySQL)?

    为您的业务部署日本服务器后,下一个关键步骤就是安装和配置数据库。无论是用于网站、应用程序还是数据分析,一个稳定高效的数据库是业务的核心。恒讯科技将以最流行的MySQL为例,提供一份在日本服务器(以
    的头像 发表于 11-04 11:07 429次阅读

    Mysql数据恢复—Windows Server下MySQL(InnoDB)全表误删数据恢复案例

    本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启bi
    的头像 发表于 09-23 15:56 509次阅读
    <b class='flag-5'>Mysql</b>数据恢复—<b class='flag-5'>Windows</b> Server下<b class='flag-5'>MySQL</b>(InnoDB)全表误删数据恢复案例

    MySQL数据备份与恢复策略

    数据是企业的核心资产,MySQL作为主流的关系型数据库管理系统,其数据的安全性和可靠性至关重要。本文将深入探讨MySQL的数据备份策略、常用备份工具以及数据恢复的最佳实践,帮助运维工程
    的头像 发表于 07-14 11:11 486次阅读

    新加坡服务器延迟大吗?真相在这里#新加坡服务器 #服务器

    服务器
    jf_57681485
    发布于 :2025年04月18日 13:48:50

    除了增删改查你对MySQL还了解多少

    我们都知道MySQL服务器的默认端口为3306,之后就在这个端口号上等待客户端进程进行连接(MySQL服务器会默认监听3306端口)。
    的头像 发表于 04-14 17:20 523次阅读

    NTP校时服务器 时钟同步服务器

    服务器
    jf_75250307
    发布于 :2025年03月19日 20:56:34

    数据库数据恢复——MySQL数据库误删除表记录的数据恢复案例

    本地服务器,安装的windows server操作系统。 操作系统上部署MySQL单实例,引擎类型为innodb,表空间类型为独立表空间。该MySQL数据库没有
    的头像 发表于 02-22 09:44 1210次阅读
    数据库数据恢复——<b class='flag-5'>MySQL</b>数据库误删除表记录的数据恢复案例

    服务器数据恢复—linux操作系统云服务器数据恢复案例

    某ECS网站服务器,linux操作系统+mysql数据库。mysql数据库采用innodb作为默认存储引擎。 在执行数据库版本更新测试时,操作人员误误将在本来应该在测试库执行的sql脚本
    的头像 发表于 02-10 18:00 620次阅读
    <b class='flag-5'>服务器</b>数据恢复—linux操作系统云<b class='flag-5'>服务器</b>数据恢复案例

    windows搭建ftp服务器的步骤

    Windows系统上搭建FTP(文件传输协议)服务器通常涉及一系列步骤,包括安装必要的服务、配置服务器设置、以及确保网络安全设置允许FTP流量。 一、准备工作 确定操作系统版本 :
    的头像 发表于 02-01 15:49 2200次阅读

    ftp服务器怎么搭建

    需要选择一款合适的FTP服务器软件。常见的FTP服务器软件包括Windows自带的IIS(Internet信息服务)、第三方软件如Serv-U、3CDaemon、FileZilla S
    的头像 发表于 02-01 15:43 1419次阅读

    使用 sysbench 对华为云 Flexus 服务器 X 做 Mysql 应用加速测评

    目前的厂商服务器中是特有独一份的,应用加速包括 MySQL,Redis,NGINX 三种选择。并且服务器性能较同类产品有了大量优化,今天咱们针对 MySQL 应用加速测评一下。    
    的头像 发表于 01-23 17:26 668次阅读
    使用 sysbench 对华为云 Flexus <b class='flag-5'>服务器</b> X 做 <b class='flag-5'>Mysql</b> 应用加速测评

    适用于MySQL和MariaDB的Python连接:可靠的MySQL数据连接和数据库

    和 MariaDB 数据库服务器以及托管数据库服务,以对存储的数据执行创建、读取、更新和删除操作。该解决方案完全实现了 Python DB API 2.0 规范,并作为 Windows、macOS
    的头像 发表于 01-17 12:18 852次阅读
    适用于<b class='flag-5'>MySQL</b>和MariaDB的Python连接<b class='flag-5'>器</b>:可靠的<b class='flag-5'>MySQL</b>数据连接<b class='flag-5'>器</b>和数据库

    适用于MySQL和MariaDB的.NET连接

    的功能。例如 SSL 和 SSH 连接、嵌入式服务器、压缩协议、HTTP 隧道等。 与各种 MySQL 和 MariaDB 版本以及NET平台的广泛兼容 ORM 支持:EF Core、Dapper、NHibernate、LinqConnect 等。 完全符合 ADO.N
    的头像 发表于 01-16 14:17 801次阅读
    适用于<b class='flag-5'>MySQL</b>和MariaDB的.NET连接<b class='flag-5'>器</b>

    华为云 Flexus 云服务器 X 实例:在 openEuler 系统下搭建 MySQL 主从复制

    前言 本文将介绍如何在华为云 Flexus 云服务器 X 实例上,基于 openEuler 系统部署 MySQL 主从复制。MySQL 作为一款高性能且稳定的开源关系型数据库管理系统,是众多
    的头像 发表于 12-30 09:11 724次阅读
    华为云 Flexus 云<b class='flag-5'>服务器</b> X 实例:在 openEuler 系统下搭建 <b class='flag-5'>MySQL</b> 主从复制

    服务器 Flexus X 实例 MySQL 应用加速测试

    文章目录 目录 文章目录   购买配置   基本配置参考如下:   连接服务器   查询MySQL状态   启动MySQL   添加配置   添加密码并修改权限   性能测试   C#插入数据测试
    的头像 发表于 12-24 12:19 801次阅读
    云<b class='flag-5'>服务器</b> Flexus X 实例 <b class='flag-5'>MySQL</b> 应用加速测试