【发布时间】: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。
-
您可能需要在配置文件中设置值,而不仅仅是运行
SET。SET GLOBAL将在服务器重启后重置。 -
您发布的代码已损坏(连接字符串末尾缺少双引号)。请确保在发布之前测试您的minimal reproducible example。
-
@AnsgarWiechers 是真的。在编辑连接字符串时,我删除了双引号。下次我会多注意的。
标签: mysql vbscript timeout odbc