在经典 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,并且无法更改 的相关文章

  • Simba Athena ODBC:无法使用 SQLGetPrivateProfileString 函数

    这很奇怪 我想设置从 RStudio 到我在 AWS Athena 中的实例的连接 我在用unixodbc作为驱动程序管理器 并通过使用测试连接成功isql v Simba Athena 但是 当我在 RStudio 中测试连接时 con
  • 在经典 ASP 中设置 HTTP_X_FORWARDED_FOR 服务器变量

    我需要在 Request ServerVariables 集合中设置 HTTP X FORWARDED FOR 值 我正在尝试使用 Fiddler 请参阅本文 https stackoverflow com questions 321185
  • 如何从 vbs 脚本发送电子邮件

    如何从 vbs 脚本发送电子邮件 在无法连接到互联网的计算机上 位于我的非互联网区域 我通过谷歌搜索将以下内容整合在一起 但似乎需要调用微软的服务器 如果我无法访问 microsoft com 该怎么办 sch http schemas m
  • 无法在 mac os x mojave 上安装 mysqlclient

    我正在尝试在 mac os x mojave 上安装 mysqlclient sudo pip3 install mysqlclient 我收到以下错误 clang Wno unused result Wsign compare Wunre
  • 经典 ASP #include virtual 不起作用

    我们正处于从 IIS6 2003 到 IIS8 2012 的迁移过程中 我们必须维护一些经典 ASP 以及 ASP 和 NET 应用程序 完整的应用程序似乎运行良好 例如 我进入 IIS 右键单击文件夹并执行 转换为应用程序 但我们的站点严
  • CodeIgniter MSSQL 连接

    我正在开发一个 Web 项目 该项目将部署在运行 IIS 7 5 和 PHP 5 3 8 的 64 位 Windows 2008 Server 计算机上 系统上的数据库是Microsoft SQL Server 2008 R2 我正在 Co
  • 连接到 ACCESS 2007 (ODBC) 时如何在 PHP 上设置 UTF8

    我在 Access 文件中有泰文 日文 韩文字符 3 个字段 我在 PHP 中创建了一个脚本来连接到该文件 但显示的字符显示 和 设置什么才能显示正常字符 这是我的脚本
  • MS Access 和 ODBC。过滤器对话框不显示

    我的 Microsoft Access 数据库有问题通过 ODBC 连接到 Postgresql 数据库 过滤器对话框 用于使用多个可选复选框过滤数据 不起作用 编辑 不起作用 我的意思是没有可供选择的复选框 仅提供用于 A Z 和 Z A
  • assessionid 名称更改

    如果我有一种简单的改变方法 我的生
  • 如何在经典 ASP 中将 Windows-1255 转换为 UTF-8?

    如何将 windows 1255 字符串转换为 utf 8classic应用服务提供商 我的数据库是 windows 1255 我想将我的网站转移到 utf 8 代码是否在这个答案 https stackoverflow com quest
  • 如何在经典 ASP 中使用地理编码 API v3

    想知道是否有人可以帮助我 我正在尝试返回地址的纬度和经度结果 刚接触编码并且陷入困境 以下代码工作正常 直到地理编码从 v2 变为 v3 你能告诉我哪里错了吗 我是否需要新的 v3 密钥或密钥 提前致谢
  • MySQL C++ 连接器未解决的依赖关系(VS 2015)

    我正在尝试在 Windows Visual Studio 2015 上编译 MySQL Connector C 我根据以下内容使用CMake生成了项目文件官方说明 https dev mysql com doc connector cpp
  • 如何防止 Internet Explorer 连接超时?

    如果网站处理和加载页面的时间超过 10 秒 Internet Explorer将做一个connection timeout 用户可以通过将注册表中的默认值设置为更高的值来防止这种情况发生 但我真的不能告诉我的任何客户这样做 所以我如何首先防
  • Response.Buffer / Flush 似乎不起作用

    我有一个经典的 asp 页面 用户使用 Response Buffer True 和 Flush 在我的本地电脑上 这个页面运行得非常好 我已将该页面上传到我的网络服务器 但它不起作用 我唯一能够检查的是两台机器上 IIS 下的 ASP B
  • 如何将SQL数据加载到Hortonworks中?

    我已在我的电脑中安装了 Hortonworks SandBox 还尝试使用 CSV 文件 并以表结构的方式获取它 这是可以的 Hive Hadoop nw 我想将当前的 SQL 数据库迁移到沙箱 MS SQL 2008 r2 中 我将如何做
  • 使用 ASP 将参数传递给存储过程

    我正在尝试将一些参数传递给经典 ASP 中的 SQL 存储过程 我看过几篇关于此的帖子 不确定我做错了什么 因为我似乎没有看到我的差异 set conn CreateObject ADODB Connection conn open DSN
  • 捕获 Unicode 文本(西里尔文)并将其插入 MS Access 数据库

    我继承了一个旧的 Web 应用程序 该应用程序使用经典 ASP 将表单中收集的数据写入 Access 2007 数据库 现在他们需要它能够收集西里尔字母的输入 我完全不熟悉代码页 字符集 也不熟悉非拉丁字母 我尝试将输入表单页面上的字符集更
  • 如何从 Qt 应用程序通过 ODBC 连接到 MySQL 数据库?

    我有一个新安装的 MySQL 服务器 它监听 localhost 3306 从 Qt 应用程序连接到它的正确方法是什么 原来我需要将MySQL添加到ODBC数据源 我在遵循这个视频教程后做到了这一点 https youtu be K3GZi
  • 在经典 ASP 中使用 Response.Write 进行调试

    我正在尝试使用调试一些代码Response Write 但是当我运行代码时 它会跳过该语句并在代码中的某个位置出现错误 我怎样才能得到我的Response Write语句来显示而不会出现其他错误 我经常使用Response End当我必须查
  • IIS 7.0和win2k8中有多少个不同的地方需要设置日期格式

    我正在尝试使用 win2k8 将旧的经典 asp 应用程序迁移到 IIS 7 0 如果可以的话 我绝对不想更改旧代码 我在日期格式的自定义区域选项中设置了日期格式 在控制面板中的区域和语言选项中将其更改为 dd MMM yy 我仍然收到 C

随机推荐