在经典 ASP 中使用 ODBC 连接器时,MySQL“max_execution_time”默认为 30000ms,并且无法更改

2024-03-06

这个问题已经困扰我几个月了,而且我还没有找到解决方案。

默认max_execution_time在经典 ASP 应用程序中使用 MySQL ODBC 连接器 (8.0) 时,设置为 30000 毫秒(30 秒),但我不知道如何增加它。

我有一个大表(400,000 多行),我正在使用UPDATE命令每天多次执行各种计算,通常这需要不到 30 秒,但随着表的不断增长,我开始看到越来越多[MySQL][ODBC 8.0(w) Driver][mysqld-8.0.15]Query execution was interrupted, maximum statement execution time exceeded正在记录错误。

在寻找解决方案时,我不断遇到相同的答案:

  • Set max_execution_time = x in my.ini

  • 或者执行SET [GLOBAL]/[SESSION] max_execution_time = x;前 运行 SQL 命令。

这些解决方案工作正常,但仅当您使用 MySQL 客户端(例如 MySQL Workbench)时才有效,但在经典 ASP 应用程序中使用 ODBC 连接器时它们没有任何区别。

下面的代码总是会输出max_execution_time: 30000

Dim dbConn, dbRS

Set dbConn = Server.CreateObject("ADODB.Connection") : dbConn.Open("DSN=my_system_dsn")
Set dbRS = dbConn.Execute("SHOW VARIABLES WHERE Variable_name = 'max_execution_time';")

Response.Write(dbRS("Variable_name") & ": " & dbRS("Value"))

dbRS.close() : Set dbRS = nothing
dbConn.close() : Set dbConn = nothing

我遇到的另一个解决方案是使用:

SELECT /*+ MAX_EXECUTION_TIME(x) */ FROM TABLE...

但这仅适用于只读 SELECT 语句,不适用于 UPDATE 命令。

我改变什么似乎并不重要,无论是在MySQL ODBC数据源配置中,连接字符串的更改,还是MySQL ini文件中,max_execution_time在经典 ASP 中使用 ODBC 连接器访问 MySQL 时,保持在 30000ms。

我确实找到了以下错误报告和讨论 https://bugs.mysql.com/bug.php?id=81071在 2016 年的 MySQL 网站上,人们报告了 ODBC 5.x 连接器与经典 ASP 一起使用时出现的相同问题,但没有人能够提供解决方案。

我只是想知道是否有其他人遇到过这个问题并且能够找到一种方法来增加max_execution_time value?


解决方案感谢@Shadow

Dim dbConn, dbRS

Set dbConn = Server.CreateObject("ADODB.Connection")
dbConn.Open("DSN=my_system_dsn")
dbConn.CommandTimeout = 120
Set dbRS = dbConn.Execute("SHOW VARIABLES WHERE Variable_name = 'max_execution_time';")

Response.Write(dbRS("Variable_name") & ": " & dbRS("Value"))

dbRS.close() : Set dbRS = nothing
dbConn.close() : Set dbConn = nothing

Output: max_execution_time: 120000


增加命令超时 https://learn.microsoft.com/en-us/sql/ado/reference/ado-api/commandtimeout-property-ado?view=sql-server-2017执行查询之前 ADO Connection 或 Command 对象的参数。此属性配置驱动程序等待查询执行的时间。

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

在经典 ASP 中使用 ODBC 连接器时,MySQL“max_execution_time”默认为 30000ms,并且无法更改 的相关文章

  • 为应用程序创建自定义 odbc 驱动程序

    好的 我有一个简单的数据库引擎 它是用 vb6 编写的专有产品 用于我的一个应用程序 我想为它创建一个 ODBC 驱动程序 这样我就可以将我的一些其他应用程序 需要数据库 与我的数据库引擎而不是 microsoft sql 他们当前正在使用
  • 创建与 .accdb 访问文件的连接

    我已经上这门课几天了 现在正在网上搜索试图找到解决方案 我在这里尝试做的是使用扩展名连接到 Access 2010 数据库 accdb我已经成功连接到旧数据库的扩展 mdb但不是 accdb 我尝试卸载 Office 并重新安装 x64 版
  • 带参数的 ASP.NET ODBC 查询

    请帮助我 我不知道以下代码有什么问题 OdbcConnection conn new OdbcConnection connString String query INSERT INTO customer custId custName c
  • MySQLClient 无法在装有最新版本 Big Sur 的 Macbook Pro M1 上通过 pip 安装

    在确保自制软件可以在其上运行后 我刚刚购买了一台带有 M1 芯片的新 Macbook Pro 我可以 pip 安装除 mysqlclient 之外的任何其他库 并且通过自制程序安装它没有问题 所以我想从下面的错误消息中看出 这是 mysql
  • 在 ASP Classic 中注释代码

    我所知道的散列代码的方式ASP经典版 http en wikipedia org wiki Active Server Pages is 这是正确的吗 或者还有别的办法吗 使用单引号 例如 This is comment ASP 经典使用V
  • RODBC 错误 - ODBC 连接失败 - 无法使用我的 Mac 连接到 MySQL(小牛)

    我正在尝试在我的 mac 小牛 上使用 RODBC 通过 R 连接到 mysql 数据库 但经过几个小时的愚蠢努力后 我仍然无法让它工作 当我尝试连接到数据库时 RODBC 抛出此错误 错误消息非常简洁 我不知道这意味着什么 ch 我按照以
  • 无法使用unixodbc、libmyodbc连接到远程mysql服务器

    我对此有点陌生 我希望我遇到的问题是一个简单的问题 编辑 底部的新信息 我需要连接到远程 mysql Amazon RDS 数据库 在学习了一些教程后 我在客户端上安装并配置了 unixodbc 和 libmyodbc 但是当我尝试通过 i
  • 我什么时候应该使用 Odbc、OleDb、SQLClient?有哪些权衡

    我从 SQLServer 数据库开始 所以看来我应该使用System Data SqlClient命名空间 但是 我们有可能关闭 SqlServer 数据库并转到 MySql 或 Oracle 因此 我提出了一套有关 Net 应用程序如何与
  • 请求送达回执时,CDO 消息不会发送

    我正在用经典 ASP 编写一个应用程序 是的 请原谅我 它使用 Google Mail 发送电子邮件 我让它工作得很好 如下所示 Dim ObjSendMail Set ObjSendMail CreateObject CDO Messag
  • 使用Python mysql.connector远程连接MySQL

    以下代码 在同一 LAN 内与 mysql 服务器不同的机器上运行 使用 Python3 和 mysql connector 本地连接到 MySQL 数据库 import mysql connector cnx mysql connecto
  • 获取 Oracle JDBC 连接上的 MySQL 错误堆栈跟踪

    我在使用连接字符串进行 Oracle JDBC 连接时遇到非常奇怪的错误 我将用户名指定为 sys 应该是 sys as sysdba 理想情况下 它应该来自 ojdbc6 jar 但就我而言 它来自 mysql connector jav
  • 当地语言的布尔值

    这个问题很久以前就被问过服务器故障 https serverfault com questions 274964 iis 7 5 using classic asp converts a boolean value to a string
  • 经典 asp 和 IIS 应用程序池之间有什么关系?

    asp 是否在为其配置网站的 IIS 应用程序池中运行 或者应用程序池仅适用于asp NET应用程序 这两者之间有何关系 我需要知道什么才能了解 谁在做什么以及他们在哪里做 ASP Classic 应用程序将在分配给它的应用程序池中运行 A
  • 无法在 mysql 表中的值中使用破折号(-)[重复]

    这个问题在这里已经有答案了 我一直在尝试从 python 将数据插入 MYSQL 表 我的sql表中的字段是id token start time end time和no of trans 我想存储使用生成的令牌uuid4在令牌栏中 但由于
  • 如何增加asp classic的请求接受限制

    我从java小程序向asp classic发送post请求 我在此请求中发送非常大的数据 即 csv 数据 当此请求中的字符数增加并超过 138000 时 asp 不接受该请求 java 小程序给出 500 错误 所以有人可以告诉我如何才能
  • ASP SQL Server 连接

  • 如何用Classic asp解析xml?

    你好 我需要用 Classic asp 解析 xml 这是 XML
  • GetClientCertificate 使用什么主题?

    我正在尝试发送请求 ActiveXObject WinHttp WinHttpRequest 5 1 但是 这需要客户端证书才能执行此操作 我们已提供该证书 在 PHP cURL 中进行测试后 我可以这样做 curl setopt SOAP
  • ELMAH 错误和经典 Asp

    我们已经在我们拥有的 ASP NET MVC 网站上使用 ELMAH 进行错误日志记录 但我们的主网站仍然是经典的 asp 我已经开始为该网站创建错误处理 日志记录结构 但我认为它如果我们能够在所有应用程序中保持错误日志记录的一致性 那就太
  • sql 查询的权限被拒绝

    我正在尝试通过经典的 asp 记录集执行以下查询 SQL Select P Name as P Name P Description as P Description from L PagePermission inner join A P

随机推荐