我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python。自动创建 MySQL 数据库的备份。

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python。自动创建 MySQL 数据库的备份。

此脚本自动创建 MySQL 数据库的备份、恢复它们以及管理目标 MySQL 服务器上的数据库和用户创建。

导入子流程
导入日期时间
导入系统
导入操作系统

def check_and_create_database(主机、端口、用户名、密码、数据库):
    # 检查数据库是否存在的命令
    check_database_command = f"<a style="color:#f60; text-decoration:underline;" href="https://www.php.cn/zt/15713.html" target="_blank">mysql</a> -sN --host={主机} --port={端口} --user={用户名} --password={密码} -e "SELECT EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '{数据库}')" 2&gt;/dev/null"

    # 执行命令
    输出 = subprocess.check_output(check_database_command, shell=True)

    # 如果输出包含b'1',则数据库存在
    如果输出中有 b'1':
        subprocess.run(check_database_command, shell=True, check=True)
        print(f"数据库'{database}'已经存在。")
        系统退出(1)
    别的:
        # 如果命令失败,则数据库不存在
        print(f"数据库 '{database}' 不存在。正在创建...")

        # 创建数据库的命令
        create_database_command = f"mysql --host={主机} --port={端口} --user={用户名} --password={密码} -e '创建数据库 {数据库}' 2&gt;/dev/null"
        subprocess.run(create_database_command, shell=True)

def check_and_create_user(主机、端口、用户名、密码、数据库、新用户名、新密码):
    # 检查用户是否存在的命令
    check_user_command = f"mysql -sN --host={主机} --port={端口} --user={用户名} --password={密码} -e "SELECT EXISTS(SELECT 1 FROM mysql.user WHERE user = '{new_username}')" 2&gt;/dev/null"

    # 执行命令
    输出 = subprocess.check_output(check_user_command, shell=True)

    # 如果输出包含b'1',则用户存在
    如果输出中有 b'1':
        print(f"用户'{new_username}'已经存在。")
        系统退出(1)
    别的:
        # 用户不存在,创建
        print(f"用户 '{new_username}' 不存在。正在创建...")

        # 创建用户并授予权限的命令
        create_user_command = f"mysql --host={主机} --port={端口} --user={用户名} --password={密码} -e "创建用户'{new_username}'@'%' 识别者' {新密码}';将 {database}.* 上的所有权限授予 '{new_username}'@'%';刷新权限;“2&gt;/dev/null”
        subprocess.run(create_user_command, shell=True)

def backup_mysql_database(主机、端口、用户名、密码、数据库、备份路径):

    # 检查备份目录是否存在
    如果不是 os.path.exists(backup_path):
        print(f"错误:备份目录'{backup_path}'不存在。")
        系统退出(1)

    # 使用当前日期和时间为备份创建文件名
    时间戳 = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
    backup_file = f"{备份路径}/{数据库}_{时间戳}.sql"

    # 使用mysqldump创建数据库备份的命令
    dump_command = f"mysqldump --no-tablespaces --host={主机} --port={端口} --user={用户名} --password={密码} {数据库} &gt; {备份文件} 2&gt;/dev/无效的”

    # 执行mysqldump命令
    subprocess.run(dump_command, shell=True)

    返回备份文件

def Restore_mysql_database(主机、端口、用户名、密码、数据库、备份文件):
    # 使用 mysql 从备份恢复数据库的命令
    Restore_command = f"mysql --host={主机} --port={端口} --user={用户名} --password={密码} {数据库} /dev/null"

    # 执行mysql命令
    subprocess.run(restore_command, shell=True)

def main():
    # 源MySQL数据库的连接参数
    源主机=“127.0.0.1”
    源端口=“3309”
    源用户名=“我的用户”
    源密码=“我的密码”
    源数据库=“我的数据库”

    # 目标MySQL数据库的连接参数
    目标主机=“127.0.0.1”
    目标端口=“3309”
    新用户名 = "新用户名"
    新密码 = "新密码"
    target_database =“my_database_two”

    目标用户名=“root”
    目标密码=“根密码”

    # 本地保存备份的路径
    backup_path =“my_dbs_dumps”

    # 检查source_database与target_database是否不同
    如果源数据库==目标数据库:
        print("错误:源数据库应该与目标数据库不同。")
        系统退出(1)

    # 检查目标数据库,如果不存在则创建
    check_and_create_database(目标主机、目标端口、目标用户名、目标密码、目标数据库)

    # 检查目标用户,如果不存在则创建
    check_and_create_user(目标主机、目标端口、目标用户名、目标密码、目标数据库、新用户名、新密码)

    # 创建MySQL数据库的备份
    backup_file = backup_mysql_database(源主机、源端口、源用户名、源密码、源数据库、备份路径)
    print(f"已创建数据库备份:{backup_file}")

    # 从备份中恢复目标服务器上的数据库
    Restore_mysql_database(目标主机、目标端口、目标用户名、目标密码、目标数据库、备份文件)
    print("数据库备份已在目标服务器上恢复。")

如果 __name__ == "__main__":
    主要的()

检查并创建_数据库:
此函数检查 MySQL 服务器上是否存在数据库。如果数据库不存在,则会创建它。它需要主机、端口、用户名、密码和数据库名称等参数来检查或创建。

检查并创建_用户:
与数据库函数一样,该函数检查 MySQL 服务器上是否存在用户。如果用户不存在,它将创建用户并授予特定数据库的权限。它还接受主机、端口、用户名、密码、数据库名称、新用户名和新密码等参数。

backup_mysql_database:
此函数使用 mysqldump 执行 MySQL 数据库的备份。它需要主机、端口、用户名、密码、数据库名称和保存备份文件的路径等参数。

restore_mysql_database:
此函数从备份文件恢复 MySQL 数据库。它接受主机、端口、用户名、密码、数据库名称和备份文件路径等参数。

主要:
这是该脚本的主要功能。它为源和目标 MySQL 数据库设置参数,包括连接详细信息、数据库名称和备份路径。然后,它执行检查以确保源数据库和目标数据库不同,如果目标数据库和用户不存在,则创建目标数据库和用户,创建源数据库的备份,最后将备份恢复到目标数据库。

此外,该脚本使用 subprocess 模块执行 MySQL 操作的 shell 命令(mysql、mysqldump),并执行错误处理和输出重定向(2>/dev/null)以抑制不必要的输出。

如果您正在使用 MySQL 数据库并想要创建自动化,此代码将为您提供帮助。

这段代码是一个很好的起始模板,用于创建管理 MySQL 数据库的自动化脚本。

dmi@dmi-laptop:~/my_<a style="color:#f60; text-decoration:underline;" href="https://www.php.cn/zt/15730.html" target="_blank">python</a>$ python3 mysql_backup_restore.py 
数据库“my_database_two”不存在。创造...
用户“new_username”不存在。创造...
创建数据库备份:my_dbs_dumps/my_database_2024-05-13_20-05-24.sql
数据库备份恢复到目标服务器上。
dmi@dmi-laptop:~/my_python$ 

ask_dima@yahoo.com

以上就是Python。自动创建 MySQL 数据库的备份。的详细内容,更多请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python。自动创建 MySQL 数据库的备份。

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python。自动创建 MySQL 数据库的备份。

此脚本自动创建 MySQL 数据库的备份、恢复它们以及管理目标 MySQL 服务器上的数据库和用户创建。导入子流程导入日期时间导入系统导入操作系统def check_and_create_database(主机、端口、用户名、密码、数
Python。自动创建 MySQL 数据库的备份。
2024-07-10

MySQL 数据库自动备份

MySQL 数据库自动备份MySQL 数据库自动备份MySQL 备份命令mysqldump 介绍数据备份数据恢复gzip 介绍MySQL 备份脚本Linux 定时任务-crontabMySQL 备份命令手抖、写错条件、写错表名、错连生产库造成的误删库表和数据总
MySQL 数据库自动备份
2021-04-06

Centos7.6 Mysql数据库自动备份配置

1、查看磁盘空间情况 执行 df -h 选择剩余空间最大的目录 (以/目录为例) 2、创建备份目录: cd /     mkdir backup cd backup 3、创建备份Shell脚本: vim monarch-bak.sh #monarch是数据库名
Centos7.6 Mysql数据库自动备份配置
2017-05-24

MySQL数据库备份恢复自动化

MySQL数据库备份恢复自动化是指通过编写脚本或使用现有的备份工具,自动执行数据库备份和恢复的过程。这样可以大大提高数据库管理的效率,减少人为错误,并确保在发生数据丢失或损坏时能够快速恢复。以下是实现MySQL数据库备份恢复自动化的几种方法
MySQL数据库备份恢复自动化
2024-10-20

自建单机MySQL数据库备份方案

使用全量备份SQL+BinLog进行数据恢复 一、环境  环境:Centos 6.5 ,MySQL 5.7.22, yum install 命令安装二、备份指定备份路径,指定 --master-data=2 参数备份时输出 MASTER_LOG_
自建单机MySQL数据库备份方案
2014-06-10

mysql怎么定时自动备份数据库

您可以使用MySQL的事件调度器来定时自动备份数据库。以下是一种常见的方法:1. 登录MySQL命令行客户端或其他MySQL管理工具。2. 创建一个存储过程,用于备份数据库。例如,创建一个名为`backup_database`的存储过程,如
2023-08-18

python备份mysql数据库

原本可以用shell完成的功能,现在学习python,就照抄照改。完成数据库备份。 #!/usr/bin/python#-*-coding:utf-8-*-#MYSQL BACKimport string,time,os,datetimei
2023-01-31

MySQL数据库的自动备份与恢复设置

在MySQL数据库中,自动备份与恢复设置可以通过多种方式实现,包括使用命令行工具、图形化管理工具或第三方备份软件。以下是一些常见的方法:一、使用mysqldump命令进行自动备份mysqldump是一个用于备份MySQL数据库的命令行工
MySQL数据库的自动备份与恢复设置
2024-10-21

PHP怎么实现MySQL数据库自动备份

这篇“PHP怎么实现MySQL数据库自动备份”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“PHP怎么实现MySQL数据库自动
2023-07-06

sqlserver数据库如何自动备份

SQL Server 提供了多种备份数据库的方法,包括手动备份、自动备份和第三方备份工具。要设置自动备份数据库,可以使用 SQL Server Management Studio (SSMS) 或 T-SQL 命令来创建备份作业。以下是通
sqlserver数据库如何自动备份
2024-04-12

oracle数据库如何自动备份

要启用 oracle 中的自动备份,请遵循以下步骤:1. 创建备份计划;2. 启用备份计划;3. 调度备份窗口。自动备份会自动连接数据库,识别更改,创建增量备份,存储备份并清理旧备份,从而减轻管理负担,提高数据保护,提供版本控制,优化性能并
oracle数据库如何自动备份
2024-06-12

编程热搜

目录