栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

mysql 5.7的备份与恢复&python脚本自动备份mysql

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql 5.7的备份与恢复&python脚本自动备份mysql

一.mysqldump备份与恢复数据库文件 1.1 一次备份所有库操作方法 所有库的备份: mysqldump -u root -p -A > /root/test20211011-6.sql

所有库的恢复:  /usr/bin/mysql -u root -p < /root/test20211011-6.sql -A参数:--all-databases表示所有库 xxx.sql:数据库备份文件 全库备份图片: 全库 恢复图片: 1.2 单独备份与恢复一个库 单独一个库的备份: mysqldump -u root -p testdb > /root/test20211011-8.sql  单独一个库的恢复: 需要先创建需要恢复的库 mysql -u root -p create database  testdb character set utf8; exit /usr/bin/mysql -u root -p testdb < /root/test20211011-8.sql testdb:数据库名称 xxx.sql:数据库备份文件 character set utf8:让数据库支持中文 备份服务器: 恢复服务器现在没有testdb的库: 二.脚本自动备份: 2.1 添加配置文件内容如下

否则会有如下报错mysqldump: [Warning] Using a password on the command line interface can be insecure.

原因:出于安全考虑mysql不让你把密码写在命令行里面,防止暴露

2.2 自动备份的python脚本

mkdir /mysql-backup创建一个自动备份的文件夹

将脚本放置到该文件夹,脚本如下

scp脚本主要是将内容防止到我的备份服务器,如果不需要,最后一行修改为 #scp_put()

添加执行权限
chmod +x /mysql-bak/mysql_dump.py

添加crontab 

0 0 1 * * /usr/bin/python3.6 /mysql-bak/mysql_dump.py >> /mysql-bak/report.log 2>&1

#coding:utf-8
'''
运行环境
python3
centos 7
'''
import os
import time

#下载数据库
time_now = time.strftime("%Y-%m-%d", time.localtime())
#------------手工修改参数---开始-----------------
#自动生成一个日期命名的.sql的文件
backup_file = '/mysql-bakcup/' + time_now +'.sql'
#远程备份文件夹位置,可以提前配置免密登录
remote_backup_file_dir = 'root@10.225.254.179:/hubin-backup-20201022/mysql_bakcup/'
#-----------手工修改参数---结束----------------------
def mysql_dump():
    if os.path.exists(backup_file):
        os.remove(backup_file)
    cmd = "mysqldump -A > %s" %(backup_file)
    result = os.system(cmd)
    if result == 0: #os.system返回值为0的表示命令执行成功
        print ('mysql_dump success')
    else:
        print ('mysql_dump fail')
        os._exit(0)
    return


def scp_put():
    #os.mkdir(backup_dir)
    # cmd = "/usr/bin/scp -l 100000 -r " + scp_server_dir + backup_dir
    #-l 速率,单位Kbps,远端文件夹拉到根目录
    cmd = "/usr/bin/scp -l 50000 %s %s"%(backup_file,remote_backup_file_dir)
    result = os.system(cmd)
    if result == 0: #上传成功会返回100%字段
        print ("scp update file sucess")
    else:
        print ('scp update file fail')
        os._exit(0)
    return

if __name__ == '__main__':
    print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
    mysql_dump()
    scp_put()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/324395.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号