python 执行mysql文件

ops/2024/9/20 2:06:18/ 标签: python, mysql, android

MySQL 5.7 之前的版本在某些方面对存储过程的支持可能有限,通过 Python 脚本调用 SQL 文件是一种有效的方法来自动化数据库任务和提高运维效率。具体操作如下:

python"># python 执行sql脚本
def execute_sql_script(mysql_params, script_name):# 使用 with 语句自动管理连接和游标的打开与关闭try:# 连接到数据库with pymysql.connect(host=mysql_params.get('ip'),user=mysql_params.get('username'),port=mysql_params.get('port'),password=mysql_params.get('passwd'),database=mysql_params.get('database'),cursorclass=pymysql.cursors.DictCursor) as connection:with connection.cursor() as cursor:# 读取 SQL 脚本文件with open(script_name, 'r', encoding='utf-8') as file:sql_script = file.read()# 如果 SQL 脚本包含多条语句,可以使用 cursor.executemany(),但通常对于脚本文件,需要分割语句# 这里我们假设脚本中的语句以分号结束(这可能需要额外的逻辑来正确处理包含分号但不应分割的情况)statements = sql_script.split(';')for statement in statements:stripped = statement.strip()if stripped:  # 忽略空语句try:cursor.execute(stripped)connection.commit()  # 如果需要,提交更改print(f"成功执行 SQL ")  # 截断输出以避免过长except pymysql.Error as e:print(f"执行 SQL 语句时出错: {stripped[:100]}... 错误信息: {e}")except Exception as e:print(f"执行脚本 {script_name} 时发生错误: {e}")

调用方式如下:

python">if __name__=="__main__":import datetimefrom dateutil.relativedelta import relativedeltanow_time = datetime.datetime.now()## 数据库链接信息mysql_params_read =  {'ip' : ip,'port': 端口,'username':用户名,'passwd':密码,'charset':'utf8','database': 数据库}  execute_sql_script(mysql_params_read, '路径/文件名.sql')

http://www.ppmy.cn/ops/105854.html

相关文章

Docker Elasticsearch安装ik分词插件教程

本章教程在通过Docker 安装Elasticsearch,并安装ik分词插件。本文的重点是安装ik分词插件。 一、安装Elasticsearch 安装教程以前写过,参考:https://blog.csdn.net/qq_19309473/article/details/140725121 安装之后,通过http://ip:9200,可以访问,就表示安装成功。 二、安装…

MATLAB生成COE文件

MATLAB代码 % 参数设置 N 4096; % 数据点数量 t linspace(0, 2*pi, N); % 时间向量 width 12; % 位宽% 正弦波,幅度在0到5之间 sine_wave 2.5 * sin(t) 2.5;% 三角波,幅度在0到5之间 tri_wave 5 * (1 - abs(mod(t/(2*pi)*4, 2) - 1));% 方波&…

sealos快速搭建k8s集群

一,环境准备 1,三台(搭建一主两从集群)或五台(三主两从集群)虚拟机, 安装alimaLinux系统 ,相同的root密码,不要安装docker。 如果是alimaLinux-mini版本操作系统&#xf…

zyx青岛实训day34 初步了解Docker与套接字的应用

回顾 1、主从复制(高可用) 2、传统的主从复制 3、gtids事务型的主从复制 4、注意 1)server_id唯一 2)8.X版本需要get_ssl_pub_key 3)5.X不需要 4)change master to 5)stop | start slave 5…

18.求三数之和

题目 链接:leetcode链接 思路分析(双指针) 这道题目与上一道题,求有效三角形的个数,十分类似,都是使用双指针算法来解决问题。 先进行排序,然后利用单调性进行调整,逐步逼近正确…

《OpenCV计算机视觉》—— 对图片的各种操作

文章目录 1、安装OpenCV库2、读取、显示、查看图片3、对图片进行切割4、改变图像的大小5、图片打码6、图片组合7、图像运算8、图像加权运算 1、安装OpenCV库 使用pip是最简单、最快捷的安装方式 pip install opencv-python3.4.2还需要安装一个包含了其他一些图像处理算法函数的…

解决firewalld启动状态下docker无法启动

环境:centos 7 docker安装方式:二进制文件安装,点击跳转安装方法链接 docker版本:27.2.2 问题描述:按照原来的二进制安装部署方式,到了最后一步: systemctl start docker 发现一直卡住不动&…

【Arm Cortex-X925】 -【第二章】-Cortex-X925 core简介

2. Cortex-X925 核心 Cortex-X925 核心是一款高性能、低功耗的产品,采用了 Armv9.2-A 架构。Armv9.2-A 架构在 Armv8‑A 架构的基础上进行了扩展,涵盖了 Armv8.7‑A。 Cortex-X925 核心集成在 DSU-120 DynamIQ™ 集群内。它连接到 DynamIQ™ Shared Unit-120,该单元作为一…

大数据技术之Flume 数据流监控——Ganglia 的安装与部署(11)

目录 Flume 数据流监控 Ganglia 的安装与部署 Ganglia 组件介绍 1)安装 Ganglia 2)在 hadoop12 修改配置文件 /etc/httpd/conf.d/ganglia.conf 3)在 hadoop12 修改配置文件 /etc/ganglia/gmetad.conf 4)在 hadoop12, hadoo…

酒店管理系统小程序(包含源码C++实现)

本文实现一个酒店管理系统小程序,涉及多个方面,包括用户接口、房间管理、预订系统、用户管理等。为了保持示例的简洁性,下面的实现将包括一个简单的控制台程序,演示基本的酒店管理功能。这将涵盖以下功能: 查看房间状…

设置Virtualbox虚拟机共享文件夹

由于工作环境的原因,选择Virtualbox的方式安装虚拟操作系统,常用的操作系统为ubuntu,不知道道友是否也曾遇到这样的问题,就是虚拟机和主机进行文件拖拽的时候,会因为手抖造成拖拽失败,虚拟机界面显示大个的…

JAVAEE初阶第一节——计算机的工作原理

系列文章目录 JAVAEE初阶第一节——计算机的工作原理 计算机的工作原理 计算机发展史冯诺依曼体系(Von Neumann Architecture)CPU操作系统(Operating System) 文章目录 系列文章目录JAVAEE初阶第一节——计算机的工作原理 计算机…

在.gitignore文件中重新添加或修改了忽略文件未生效的原因

因为git在初始化时就已经对忽略文件进行了不追踪,其它文件都会追踪,重新添加忽略文件后,实际上是没有进行更改追踪记录的,所以需要重新初始化。 git rm -r --cached .git add .git commit -m "Update .gitignore"

秋招突击——算法练习——8/30、9/4——技巧题练习——复习{}——新作{只出现一次的数字、多数元素、颜色分类、下一个排列、寻找重复数}

文章目录 引言复习新作136、只出现一次的数字个人实现 169、多数元素个人实现 75、颜色分类个人实现参考实现 31、下一个排列个人实现参考实现 287寻找重复数个人实现参考实现 总结 引言 手撕的代码大部分都是出自于这里,还是要继续加强,把剩下一些零碎…

Qt是不是经常写个QWidget输入参数?

发现Qt自带的一个输入控件QInputDialog类 QInputDialog类提供了一个简单方便的对话框,用于从用户获取单个值。 输入值可以是字符串、数字或列表中的项。必须设置一个标签来告诉用户他们应该输入什么。 提供了五个静态方便函数:getText()、getMultiLineText()、getI…

Java Lock 中使用 await() 和 signal()实现 wait()/notify()机制

** Java Lock 中使用 await() 和 signal()实现 wait()/notify()机制 ** 案例 import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;public class MyService {private Lock lock new R…

5.8幂律变换

目录 示例代码1 运行结果1 示例代码2 运行结果2 补充示例原理 示例:使用cv::pow进行图像处理 代码 运行结果 ​编辑 补充 实验代码3 运行结果3​编辑 在OpenCV中,幂律变换(Power Law Transformations)是一种常用的图像…

一起学习LeetCode热题100道(63/100)

63.搜索插入位置(学习) 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5…

Android 事件分发:为什么有时候会出现事件冲突?事件的顺序是如何的?出现事件冲突如何解决呢?比如为什么左右可以滑动,而上下却不行?

目录: 一、为什么要学习事件呢? 1.在开发复杂的应用时,经常需要处理复杂的用户交互逻辑。学习事件分发机制可以帮助你更好地控制事件的传递和处理流程,从而解决一些复杂的交互问题,如滑动冲突、点击穿透等。 2.面试需…

【ACM独立出版 | 厦大主办】第五届计算机科学与管理科技国际学术会议(ICCSMT 2024,10月18-20)

第五届计算机科学与管理科技国际学术会议(ICCSMT 2024) 定于2024年10月18-20日在中国厦门举行。 会议旨在为从事“计算机科学”与“管理科技”研究的专家学者、工程技术人员、技术研发人员提供一个共享科研成果和前沿技术,了解学术发展趋势,拓宽研究思路…