python利用pymysql迁移MYSQL数据库数据

2023-05-16

1.前言
pymysql是一个第三方的模块,使用前需要安装

2.安装
pip install pymysql

3.基本使用

1.导入模块
from pymysql import connect

2.Connection 对象 目的:用于建立代码与数据库的连接
创建连接对象 conn=connect(参数列表)

参数host:连接的mysql主机,如果本机是'127.0.0.1'#如果不能用可以试下 host=localhost
参数port:连接的mysql主机的端口,默认是3306
参数database:数据库的名称
参数user:连接的用户名
参数password:连接的密码
参数charset:通信采用的编码方式,推荐使用utf8

3.关闭连接 conn.close()

4.提交数据 conn.commit()

5.撤销数据 conn.rollback()

6.通过连接获取游标 cur = conn.cursor()返回Cursor对象,用于执行sql语句并获得结果

7.Cursor游标对象 目的: 执行sql语句

8.获取Cursor对象 cur = conn.cursor()

9.使用游标执行SQL语句 cur.execute(operation , [parameters])

10.执行SQL语句,返回受影响的行数,主要用于执行insert、update、delete语句

11.获取结果集中的一条 cur.fetchone() 返回一个元组

12.获取结果集中的一条 cur.fetchmany(2) 返回一个元组

13.获取结果集中的所有 cur.fetchall() 执行查询时,获取结果集的所有行,一行构成一个元组,再将这些元组装入一个元组返回

14.关闭游标 cur.close()

5.代码实现结果
前提,这两个表结构相同

1.进入命令行,运行脚本

D:\BaiduNetdiskDownload
λ python D:\Users\ZHOUGUIHUA\PycharmProjects\transfer_dbdata\main.py

2.提示输入源数据库的一些信息

请依次输入下面源数据库配置
源数据库ip地址,用户名,数据库名,需要同步表名称,端口号[使用英文状态下的逗号分隔],回车键确定:

输入完成按下回车键

请依次输入下面源数据库配置
源数据库ip地址,用户名,数据库名,需要同步表名称,端口号[使用英文状态下的逗号分隔],回车键确定:
10.10.1.66,root,house,project_zj,3306

提示输入密码

请依次输入下面源数据库配置 源数据库ip地址,用户名,数据库名,需要同步表名称,端口号[使用英文状态下的逗号分隔],回车键确定: 10.10.1.66,root,house,project_zj,3306 请输入源数据库密码,回车键确定:  请依此输入下面目标数
据库配置 目标数据库ip地址,用户名,数据库名,同步到表名称,端口号[使用英文状态下的逗号分隔],回车键确定:

接着输入目标数据库配置和密码同上。。。

执行效果:

D:\BaiduNetdiskDownload
λ python D:\Users\ZHOUGUIHUA\PycharmProjects\transfer_dbdata\main.py
请依次输入下面源数据库配置
源数据库ip地址,用户名,数据库名,需要同步表名称,端口号[使用英文状态下的逗号分隔],回车键确定:
10.10.1.66,root,house,project_zj,3306
请输入源数据库密码,回车键确定:

请依此输入下面目标数据库配置
目标数据库ip地址,用户名,数据库名,同步到表名称,端口号[使用英文状态下的逗号分隔],回车键确定:
10.10.1.63,root,house,project,3306                                                                                                                                                                             数请输入目标数据库密码,回车键确定:

进度15 %;源服务器:10.10.1.66;源数据库:house;目标服务器:10.10.1.63;目标数据库:house;已处理:998;错误:0;已传输:998;时间:17.70s

执行结果:

D:\BaiduNetdiskDownload
λ python D:\Users\ZHOUGUIHUA\PycharmProjects\transfer_dbdata\main.py
请依次输入下面源数据库配置
源数据库ip地址,用户名,数据库名,需要同步表名称,端口号[使用英文状态下的逗号分隔],回车键确定:
10.10.1.66,root,house,project_zj,3306
请输入源数据库密码,回车键确定:

请依此输入下面目标数据库配置
目标数据库ip地址,用户名,数据库名,同步到表名称,端口号[使用英文状态下的逗号分隔],回车键确定:
10.10.1.63,root,house,project,3306
请输入目标数据库密码,回车键确定:
进度100%;源服务器:10.10.1.66;源数据库:house;目标服务器:10.10.1.63;目标数据库:house;已处理:6728;错误:0;已传输:6728;时间:116.71s

插入6728条数据耗时2分钟,提高效率的话,可以直接使用命令的方式

本文章全系对技术的兴趣爱好,欢迎大家学习交流。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python利用pymysql迁移MYSQL数据库数据 的相关文章

  • Laravel - 重复键批量插入更新大数据集

    我有大约 80k 条记录 每天需要多次运行插入 更新脚本 INSERT INTO my rankings id rank VALUES 1 100 2 99 3 102 80000 3 ON DUPLICATE KEY UPDATE ran
  • 性能 多次插入或多值单次插入

    从性能角度 时间和服务器负载 来看 最好是进行多个插入或单个插入多个值 我在 stackoverflow 上发现每次插入最多可以有 1000 个值集 我说的是两种情况 要插入大约 1000 3000 个值 有时我会在 mySQL 数据库中插
  • 如何在不破坏默认行为的情况下覆盖 __getattr__ ?

    我如何覆盖 getattr https docs python org 3 reference datamodel html object getattr 类的方法而不破坏默认行为 压倒一切 getattr 应该没事 getattr 仅作为
  • 检查多维 numpy 数组的所有边是否都是零数组

    n 维数组有 2n 个边 1 维数组有 2 个端点 2 维数组有 4 个边或边 3 维数组有 6 个 2 维面 4 维数组有 8 个边 ETC 这类似于抽象 n 维立方体发生的情况 我想检查 n 维数组的所有边是否仅由零组成 以下是边由零组
  • 如何充分释放函数中使用的GPU内存

    我在用着cupy在接收一个函数numpy数组 将其推到 GPU 上 对其进行一些操作并返回cp asnumpy它的副本 问题 函数执行后内存没有被释放 如ndidia smi 我知道内存的缓存和重用cupy 但是 这似乎仅适用于每个用户 当
  • 为什么我不能“string”.print()?

    我的理解print 在 Python 和 Ruby 以及其他语言 中 它是字符串 或其他类型 上的方法 因为它的语法非常常用 打印 嗨 works 那么为什么不呢 hi print 在 Python 中或 hi print在红宝石工作 当你
  • 使用 OpenCV 进行相机校准 - 如何调整棋盘方块大小?

    我正在使用 OpenCV Python 示例开发相机校准程序 来自 OpenCV 教程 http opencv python tutroals readthedocs io en latest py tutorials py calib3d
  • 获取 HTML 代码的结构

    我正在使用 BeautifulSoup4 我很好奇是否有一个函数可以返回 HTML 代码的结构 有序标签 这是一个例子 h1 Simple example h1 p This is a simple example of html page
  • Microsoft Azure 数据仓库和 SqlAlchemy

    我正在尝试使用 python 的 sqlalchemy 库连接到 microsoft azure 数据仓库 并收到以下错误 pyodbc Error HY000 HY000 Microsoft ODBC SQL Server Driver
  • 在Python中确定句子中2个单词之间的邻近度

    我需要确定 Python 句子中两个单词之间的接近度 例如 在下面的句子中 the foo and the bar is foo bar 我想确定单词之间的距离foo and bar 确定之间出现的单词数foo and bar 请注意 该词
  • 如何使用 Selenium Webdriver (Python) 在上下文菜单中选择“将图像另存为...”来保存图像

    我正在尝试使用 selenium webdriver 将特定图像保存到目录中 我希望通过模拟右键单击 img 元素并选择 将图像另存为 来实现此目的 使用以下代码我可以打开上下文菜单 但无法选择正确的选项 browser WebDriver
  • Learning_rate 不是合法参数

    我正在尝试通过实现 GridSearchCV 来测试我的模型 但我似乎无法在 GridSearch 中添加学习率和动量作为参数 每当我尝试通过添加这些代码来执行代码时 我都会收到错误 这是我创建的模型 def define model op
  • 让 TensorFlow 在 ARM Mac 上使用 GPU

    我已经安装了TensorFlow在 M1 上 ARM Mac 根据这些说明 https github com apple tensorflow macos issues 153 一切正常 然而 模型训练正在进行CPU 如何将培训切换到GPU
  • MySQL 查询按父级排序然后子级排序

    我的数据库中有一个页面表 每个页面可以有一个父页面 如下所示 id parent id title 1 0 Home 2 0 Sitemap 3 0 Products 4 3 Product 1 5 3 Product 2 6 4 Prod
  • Docker Build 找不到 pip

    尝试关注一些 1 https aws amazon com blogs aws run docker apps locally using the elastic beanstalk eb cli 2 http docs aws amazo
  • 如何从外语线程调用Python函数(C++)

    我正在开发一个程序 使用 DirectShow 来抓取音频数据 媒体文件 DirectShow 使用线程将音频数据传递给回调 我的程序中的函数 然后我让该回调函数调用另一个函数 Python 中的函数 我使用 Boost Python 来包
  • InnoDB:使用事务批量插入或组合多个查询?

    做批量的时候INSERT在InnoDB中 我应该使用事务吗 START TRANSACTION INSERT INTO tbl name a b c VALUES 1 2 3 INSERT INTO tbl name a b c VALUE
  • Matplotlib 渲染日期、图像的问题

    我在使用 conda forge 的 Matplotlib v 3 1 3 和 python 3 7 时遇到问题 我拥有 Matplotlib 所需的所有依赖项 当我输入这段代码时 它应该可以工作 我得到了泼溅艺术 它基于此 YouTube
  • 需要一个从 yaml 文件中提取内容并输出为 csv 文件的脚本

    我对 python 很陌生 但我很感激您帮助指导我创建一个简单的脚本 该脚本读取一堆 yaml 文件 同一目录中的大约 300 个文件 并从 yaml 文件并将其转换为 csv yaml 文件中内容的示例 code 9313 degrees
  • Python模糊字符串匹配作为相关样式表/矩阵

    我有一个文件 其中包含 x 个字符串名称及其关联的 ID 本质上是两列数据 我想要的是一个格式为 x by x 的相关样式表 将相关数据作为 x 轴和 y 轴 但我想要 fuzzywuzzy 库的函数 fuzz ratio x y 作为输出

随机推荐