mysql - Access MySQL ODBC连接打开缓慢

标签 mysql ms-access odbc

我正在将 Access 拆分数据库后端移至 MySQL 服务器。前端启动表单运行传递查询。加载启动表单需要 1.25 秒。如果没有查询,则为 0.05 秒。 我尝试在服务器端断开连接后运行查询。查询在 1.21 秒内完成。当打开连接后运行相同的查询时,它会在 0.016 秒内完成。

看来 Access 需要 1.2 秒才能打开新的 ODBC 连接。有没有办法加快速度?使用 mysqlslap,我每秒能够打开和删除 60 个连接,所以它实际上不应该花费 1.2 秒。

配置:

  • MySQL 服务器在本地主机上运行,​​win 7 SP1(i5,足够的可用 RAM)。
  • 客户端是 MS Access prof 2013 32 位(带有最新补丁)。
  • 服务器是mysql-5.7.11-x64社区版。
  • MySQL ODBC 驱动程序是 Unicode 5.3.4 版本,已安装 32 位和 64 位。
  • 连接字符串没有有效的服务器/用户/密码:“ODBC;DRIVER={MySQL ODBC 5.3 Unicode Driver};SERVER=XXX;charset=UTF8;PORT=3309;DATABASE=movedb2;user=XXX;password=XXX; DFLT_BIGINT_BIND_STR=1;选项=4196410"

查询:

Dim r as recordset, db as database
Set db = currentdb
Set r = db.Openrecordset(ptqueryname)

我尝试了 select 1;,但查询仍然在 1.2 秒内完成。

最佳答案

我的 ODBC 与 IPv6 可以正常工作:

  • 防火墙中 MySQL 的端口 3306 用于 TCP 输入和 TCP6 输入;

  • 在 Linux 中,将/etc/my.cnf 中的“bind-address = 127.0.0.1”更改为“#bind-address = 127.0.0.1”,我认为需要重新启动服务器;

  • MySQL 数据库(在 DirectAdmin 中)已获得您个人 IPv4 和/或 IPv6 的授权;

  • 可以使用域名作为服务器名称,否则使用 IP 地址(括号内为 IPv6)。

此外: - MySQL 数据库的 MS Access VBA 模块中的参数字符串: 公共(public)常量 gloODBCParameters As String = "PORT=3306;SSLmode=verify-full;TextAsLongVarchar=0;UseDeclareFetch=0;LANGUAGE=us_english;INITSTMT=set wait_timeout=600;FOUND_ROWS=1";

  • 32 位驱动程序 {MySQL ODBC 5.3 Unicode Driver} 在我的电脑上运行;

注意:出于隐私考虑,我的提供商经常切换我的 IPv6 地址。这是一个很好的设置,因此我不再使用固定的 IPv6 地址授权我的数据库。然后使用 IPv4 地址联系服务器。

关于mysql - Access MySQL ODBC连接打开缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35975670/

相关文章:

php - 如果 php 中的文件字段为空,如何提交没有错误的表单?

sql - Access : grouping according to most recent date in a record (nested query)

sql-server - 在 Win x64 上通过 MS SQL 使用 Tcl 和 tdbc

vba - 使用路径从外部源将图像添加到表单中

mysql - 无法从 Tableau 连接到 MySQL

php - 使用 PHP -> ODBC -> MS SQL 插入 Unicode 字符?

php - 在 MySQL 中按发件人收件人或收件人发件人分组

php - 在一个查询中插入多行求和

php - 如何使用php、mysql更新数据库

ms-access - 在Access 2007表单中为按钮分配键盘快捷键