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表
怎么从本机的sql数据库中把表上传到web服务器的sql数据库中