文档章节

python+mysqldump交互式数据迁移

阿dai学长
 阿dai学长
发布于 06/11 19:14
字数 486
阅读 38
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

mysql_data_migrate.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

__author__ = "Jason Li"

import os
import time


"""
数据迁移:
Tips: 执行脚本前先安装python3
python3 mysql_data_migrate.py
"""

print("*" * 50,"请输入源数据库信息", "*" * 50)
src_db_host = input("Enter source db host:")
src_db_user = input("Enter source db user:")
src_db_pwd = input("Enter source db passwd:")
src_db_name = input("Enter source db name:")

print("*" * 50,"请输入目标数据库信息", "*" * 50)
dest_db_host = input("Enter dest db host:")
dest_db_user = input("Enter dest db user:")
dest_db_pwd = input("Enter dest db passwd:")
dest_db_name = input("Enter dest db name:")

filestamp = time.strftime('%Y-%m-%d-%I:%M')
filename = src_db_name + '-' + filestamp + '.sql'


def export_data():
    """
    数据导出
    :return:
    """
    print(">>> Exporting...")
    os.system("mysqldump --single-transaction -u%s -p'%s' -h%s %s > %s"% (src_db_user, src_db_pwd, src_db_host, src_db_name, filename))


def import_data():
    """
    数据导入
    :return:
    """
    print(">>> Creating dest database...")
    os.system("mysql -u%s -p'%s' -h%s -e 'create database %s'" % (dest_db_user, dest_db_pwd, dest_db_host, dest_db_name))

    print(">>> Importing...")
    os.system("mysql -u%s -p'%s' -h%s %s < %s"% (dest_db_user, dest_db_pwd, dest_db_host, dest_db_name, filename))
    os.remove(filename)


def check_result():
    """
    检查是否导入成功
    :return:
    """
    print(">>> Show tables from dest db...")
    check_result = os.system("mysql -u%s -p'%s' -h%s %s -e 'show tables from %s'" % (dest_db_user, dest_db_pwd, dest_db_host, dest_db_name, dest_db_name))
    print(check_result)


if __name__ == '__main__':
    export_data()
    import_data()
    check_result()

mysql_structure_migrate.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import os
import time

"""
数据库表结构迁移:
python3 mysql_structure_migrate.py
"""

print("*" * 50,"请输入源数据库信息", "*" * 50)
src_db_host = input("Enter source db host:")
src_db_user = "adminroot"
src_db_pwd = input("Enter source db passwd:")
src_db_name = input("Enter source db name:")

print("*" * 50,"请输入目标数据库信息", "*" * 50)
dest_db_host = input("Enter dest db host:")
dest_db_user = "adminroot"
dest_db_pwd = input("Enter dest db passwd:")
dest_db_name = input("Enter dest db name:")

filestamp = time.strftime('%Y-%m-%d-%I:%M')
filename = src_db_name + '-' + filestamp + '.sql'


def export_structure():
    """
    数据导出
    :return:
    """
    print(">>> Exporting...")
    os.system("mysqldump --single-transaction -u%s -p'%s' -h%s -d %s > %s" % (src_db_user, src_db_pwd, src_db_host, src_db_name, filename))


def import_structure():
    """
    数据导入
    :return:
    """
    print(">>> Creating dest database...")
    os.system("mysql -u%s -p'%s' -h%s -e 'create database %s'" % (dest_db_user, dest_db_pwd, dest_db_host, dest_db_name))
    
    print(">>> Importing...")
    os.system("mysql -u%s -p'%s' -h%s %s < %s" % (dest_db_user, dest_db_pwd, dest_db_host, dest_db_name, filename))
    os.remove(filename)


def check_result():
    """
    检查是否导入成功
    :return:
    """
    print(">>> Show tables from dest db...")
    check_result = os.system("mysql -u%s -p'%s' -h%s %s -e 'show tables from %s'" % (dest_db_user, dest_db_pwd, dest_db_host, dest_db_name, dest_db_name))
    print(check_result)


if __name__ == '__main__':
    export_structure()
    import_structure()
    check_result()

© 著作权归作者所有

阿dai学长
粉丝 76
博文 263
码字总数 337363
作品 0
朝阳
运维
私信 提问
【每周一本书】之《大数据核心技术与实用算法》

大数据技术与应用展现出锐不可当的强大生命力,科学界与企业界寄予无比的厚望。大数据成为继20世纪末21世纪初互联网蓬勃发展以来的又一轮IT工业革命 编辑 | abby 官网 | www.datayuan.cn 微信...

ympzuelx3aiap7q
2017/12/19
0
0
关于交互式分析对接Tableau你还不知道的神奇小秘密!

Tableau是一款极强大、安全且灵活的端到端数据分析平台,其Tableau Desktop是Tableau的一款可视化数据管理工具,以拖拽的方式就能提供实时可视化分析,快速获取切实可行的结果。 目前交互式分...

May-交互式分析
10/29
0
0
葡萄城控件/ActiveReports

官网:http://www.gcpowertools.com.cn/products/activereportsoverview.htm 下载:http://www.gcpowertools.com.cn/products/download.aspx?pid=16 社区:http://gcdn.gcpowertools.com.cn......

葡萄城控件
2014/08/19
0
0
学界 | 抱歉我们今天想介绍的这篇论文,刚刚中了CVPR 2018最佳论文

  选自stanford   作者:Amir R. Zamir等   机器之心编译   参与:Huiyuan Zhuo、刘晓坤      自 CVPR 2018 公布接收论文以来,机器之心为大家介绍了多篇论文,而之后计划发布的...

机器之心
2018/06/20
0
0
绿色报表设计器 - ActiveReports

ActiveReports 是绿色报表设计器,可方便设计ActiveReports的页面报表、区域报表,同时提供打印、预览功能。 依赖.NET Framework 4.5环境,直接解压使用。 无论您研发的是桌面应用系统,Web...

葡萄城控件技术团队
2014/08/19
22.2K
10

没有更多内容

加载失败,请刷新页面

加载更多

交换机switch 的shutdown 与 no shutdown

shutdown是关闭接口(端口),接口状态会变为DOWN,no shutdown是激活接口(端口),状态变为UP,一般在给vlan或者端口配置管理ip或者端口ip后使用。 有时候我们配置某个端口前会需要把端口关闭到...

刘日辉
32分钟前
5
0
AOP底层源码分析

思维导图 AOP AOP: 面向切面编程[底层就是动态代理] 指程序在运行期间动态的将某段代码切入到指定方法位置进行运行的编程方式。 AOP通知方式 前置通知: logStart(),在目标方法(div)运行之前运...

volc1612
46分钟前
5
0
OSChina 周六乱弹 —— 别听他们的,你不胖你只是毛茸茸的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @且无需多言 :分享Rise Against的单曲《Audience Of One (Ghost Note Symphonies)》: 硬核朋克不插电版本,隐藏在喧嚣下的柔情! 《Audienc...

小小编辑
今天
32
2
apache httpClient实现代理发送Post请求

CredentialsProvider credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials( new AuthScope("host", port), new UsernamePasswordCredentials(username, password......

huangkejie
今天
5
0
SpringCloud

单体应用存在的问题 ● 随着业务的发展,开发变得越来越复杂。 ● 修改、新增某个功能,需要对整个系统进行测试,重新部署。 ● 一个模块出现问题,很可能导致整个系统崩溃。 ● 多个开发团队...

Star永恒
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部