【问题标题】:I can't change a variable "max_execution_time"我无法更改变量“max_execution_time”
【发布时间】:2019-05-13 14:53:14
【问题描述】:

我将max_execution_time 变量从 MySQL 更改为 60000,但是当我在 VBScript 中使用 ODBC 驱动程序进行查询时,结果仍为默认值 30000。

用于更改变量值的查询:

SET max_execution_time = 60000;
SET GLOBAL max_execution_time = 60000;
SET SESSION max_execution_time = 60000;

在带有 ODBC 的 VBScript 中使用的查询:

show variables like '%max_execution%';

我预计输出 60000,但实际输出是 30000。

我在 Windows Server 2016 上使用 MySQL Server 5.7。

注意:这个问题只发生在 ODBC 上,因为我用 PHP 做了同样的测试,返回值是 60000。

有人知道那可能是什么吗?

更新:

这是我用作测试的脚本:

Dim strCon

strCon = "DRIVER = {MySQL ODBC 5.3 ANSI Driver}; SERVER = xxx.xxx.xxx.xxx; PORT = 3306; DATABASE = zadmin; USER = xxxx; PASSWORD = xxx; OPTION = 3; MULTI_STATEMENTS = 1;"

Dim oCon: Set oCon = WScript.CreateObject ("ADODB.Connection")
Dim oRs: Set oRs = WScript.CreateObject ("ADODB.Recordset")
oCon.Open strCon

Set oRs = oCon.Execute ("show variables like '% max_execution_time%';")

While Not oRs.EOF
    WScript.Echo oRs.Fields (1) .Value
    oRs.MoveNext
Wend
oCon.Close

Set oRs = Nothing
Set oCon = Nothing

【问题讨论】:

  • 自从您更改变量后,您是否建立了新的 OBDC 连接?使用SET GLOBAL 只会影响SET 命令运行后建立的连接,SET SESSION 只会影响当前会话。
  • 是的。我建立了新的联系。但结果仍然是 30000。
  • 您可能需要在配置文件中设置值,而不仅仅是运行SETSET GLOBAL 将在服务器重启后重置。
  • 您发布的代码已损坏(连接字符串末尾缺少双引号)。请确保在发布之前测试您的minimal reproducible example
  • @AnsgarWiechers 是真的。在编辑连接字符串时,我删除了双引号。下次我会多注意的。

标签: mysql vbscript timeout odbc


【解决方案1】:

我已经找到了解决这种情况的方法。 MySQL ODBC 驱动程序 5.3.6 或更高版本不会同化 MySQL 服务器 5.7.4 或更高版本上的“max_execution_time”变量的配置。 我通过安装 MySQL ODBC 驱动程序 5.1 版解决了我的问题。

【讨论】:

    猜你喜欢
    • 2012-07-02
    • 1970-01-01
    • 2022-07-19
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多