python代码如何备份mysql 数据

# 命令
-----------------------------------------

# 将所有库数据 导出到all.sql文件里     两个命令都行
mysqldump -h主机名 -P端口 -u用户名 -p密码 --all-databases  > D:/haha/all.sql
mysqldump -h主机名 -P端口 -u用户名 -p密码 -A  > D:/haha/all.sql

------------------------------------------
# 将单独一个库数据 导出到aaa.sql文件里
mysqldump -h主机名 -P端口 -u用户名 -p密码  dbname > 备份文件.sql

mysqldump -h127.0.0.1 -P3306 -uroot -p222 aaa > D:/hahaha/aaa.sql

------------------------------------------
# 恢复
# 将aaa.sql备份文件恢复到test空库里面去!!!
mysql -uroot -p222 test < aaa.sql

.
.
.

代码实现自动备份数据库的效果

# 可以再加个定时任务,就可以定时备份数据库了,完美!!!

import os, datetime


class BakDb(object):
    def __init__(self, ip, username, passwd, port=3306, path='D:/hahaha/aaa'):
        self.ip = ip
        self.username = username
        self.passwd = passwd
        self.port = port
        self.path = path
        self.path_exist()
        self.bak_db()

    def path_exist(self):
        if not os.path.isdir(self.path):  # 文件夹不存在的话,就创建就创建文件夹
            os.mkdir(self.path)

    def bak_db(self):
        filename = str(datetime.date.today()) + '.sql'
        abs_file = os.path.join(self.path, filename)  # 变成绝对路径

        # 所有库全备份的命令
      #   command = '''
      # mysqldump -u{username} -p{passwd} -P{port} -h{ip} -A > {filename}
      # '''.format(username=self.username,
      #            passwd=self.passwd,
      #            port=self.port,
      #            filename=abs_file,
      #            ip=self.ip)

        # 单独一个aaa库的备份命令
        command = '''
          mysqldump -u{username} -p{passwd} -P{port} -h{ip} aaa > {filename}
          '''.format(username=self.username,
                     passwd=self.passwd,
                     port=self.port,
                     filename=abs_file,
                     ip=self.ip)

        os.system(command)    # cmd终端执行mysqldump备份命令!!!
        print('done!数据库备份完成!')


obj = BakDb('127.0.0.1', 'root', '222')
obj.path_exist()
obj.bak_db()

.
.
.

posted @   tengyifan  阅读(18)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示