如何使用 PyMySQL 进行数据库的备份和恢复

数据库备份

备份数据库通常使用 mysqldump 命令。可以通过Python脚本执行如下命令:

import os
import pymysql
import time

# 定义数据库连接信息
sql_host = 'localhost'
sql_user = 'your_username'  # 数据库登录用户
sql_pwd = 'your_password'   # 数据库登录密码
databases = ['db1', 'db2']   # 要备份的数据库列表

# 存放备份文件的地址
root_path = './backups/'
if not os.path.exists(root_path):
    os.mkdir(root_path)

# 创建备份
for database_name in databases:
    backup_file = os.path.join(root_path, database_name + '_' + time.strftime('%Y%m%d') + '.sql')
    sql_command = "mysqldump -u%s -p%s %s > %s --default-character-set=utf8" % (
        sql_user, sql_pwd, database_name, backup_file)
    if os.system(sql_command) == 0:
        print(f"{database_name} backup successfully! Backup file path: {backup_file}")
    else:
        print(f"{database_name} backup failed.") 

数据库恢复

恢复数据库可以通过 mysql 命令行工具来实现。以下是一个Python脚本示例,用于从备份文件恢复数据库:

import os
import pymysql
import time

# 定义数据库连接信息
sql_host = 'localhost'
sql_user = 'your_username'  # 数据库登录用户
sql_pwd = 'your_password'   # 数据库登录密码

# 备份文件地址
sql_path = './backups/db1_20230101.sql'  # 存放sql文件的地址

# 恢复数据
if os.path.exists(sql_path):
    database_name = 'db1'  # 要恢复到的数据库名
    sql_command = "mysql -u%s -p%s -D%s < %s" % (
        sql_user, sql_pwd, database_name, sql_path)
    if os.system(sql_command) == 0:
        print(f"{database_name} restore successfully.")
    else:
        print(f"{database_name} restore failed.")
else:
    print('Backup file does not exist.')

请注意,上述脚本中的 'your_username', 'your_password', 和 'db1' 需要替换为实际的数据库登录信息和数据库名。备份和恢复操作需要相应的权限,确保数据库用户具有执行 mysqldumpmysql 命令的权限。

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值