Python 导出本机mysql数据库,打包并上传至ftp服务器

Posted 何效名的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 导出本机mysql数据库,打包并上传至ftp服务器相关的知识,希望对你有一定的参考价值。


# 引入包
import os, shutil, ftplib, zipfile, datetime;

# mysqldump命令路径
mysqldump = \'mysqldump\';

# mysql配置
user = \'xmsb\';
pwd = \'123456\';

# 要备份的库名.表名
databases = [\'database1\', \'database2\'];
tables = [\'database.table1\', \'database.table2\'];

# FTP服务器配置
host = \'127.0.0.1\';
username = \'xmsb\';
password = \'123456\';
cd = \'/home/xmsb/\';

# 获取当前时间
now = datetime.datetime.now().strftime(\'%Y-%m-%d_%H%M%S\');

# 创建文件夹
path = os.getcwd() + os.sep + \'history\';
if os.path.isdir(path) == False:
    os.mkdir(path);

mPath = path + os.sep + str(now);
os.mkdir(mPath);

dPath = mPath + os.sep + \'databases\';
os.mkdir(dPath);

tPath = mPath + os.sep + \'tables\';
os.mkdir(tPath);

# 执行备份
cmd = mysqldump + \' -u\' + user + \' -p\' + pwd + \' \';

for i in databases:
    os.system(cmd + i + \' > \' + dPath + os.sep + i + \'.sql\');
for i in tables:
    os.system(cmd + i.replace(\'.\', \' \') + \' > \' + tPath + os.sep + i.replace(\'.\', \'_\') + \'.sql\');
    
# 打包文件
fileName = \'history\' + os.sep + now + \'.zip\';
zip = zipfile.ZipFile(fileName, \'w\', zipfile.ZIP_DEFLATED, allowZip64 = True);
for root, dir, files in os.walk(mPath):
    root_ = os.path.relpath(root, mPath);
    for file in files:
        tmpPath = os.path.join(root, file);
        tmpPath_ = os.path.join(root_, file);
        zip.write(tmpPath, tmpPath_);
        
zip.close();

# 连接ftp服务器并上传文件
ftp = ftplib.FTP();
ftp.set_pasv(False);
ftp.connect(host, 21);
ftp.login(username, password);
ftp.cwd(cd);
ftp.storbinary(\'STOR \'+ now + \'.zip\', open(fileName, \'rb\'), 1024);
ftp.close();

# 删除临时文件夹
shutil.rmtree(mPath);

 

以上是关于Python 导出本机mysql数据库,打包并上传至ftp服务器的主要内容,如果未能解决你的问题,请参考以下文章

用python脚本导出mysql数据库查询结果到Excel表

数据从腾讯云mysql转移到阿里云mysql

怎么从本机的sql数据库中把表上传到web服务器的sql数据库中

2017最新xcode打包IPA上传App Store完整教程

客户不提供开发者账号打包上传应用的处理方法

使用 PHP 将本机图像上传到 MySQL