首页 > 解决方案 > MySQL:驱动程序从 5 更新到 8 后,LOAD DATA LOCAL INFILE 不起作用

问题描述

我们最近将我们的客户端电脑从 Windows 7 更新到了 Windows 10,并且随之将我们的 MySQL 驱动程序从“MySQL ODBC 5.3 Unicode 驱动程序”更新为“MySQL ODBC 8.0 Unicode 驱动程序”。

LOAD DATA LOCAL INFILE通过 R 包使用命令RODBC将本地 CSV 文件中的数据导入 MySQL 服务器。服务器上没有进行任何更改,并且 SQL 语句仍然与以前相同,但是由于驱动程序更新,我收到以下错误消息:

“此 MySQL 版本不允许使用的命令”

当我在一台旧的 Win7 机器上运行它时,该命令仍然有效,这意味着它不是基于服务器的问题(例如local-infile=0在配置文件中)。

有没有其他人经历过这个?

谢谢和亲切的问候,

约翰内斯

标签: mysqlrodbcrodbc

解决方案


最新版本的 MySQL ODBC 连接器 (> 8.0.14) 允许您设置

ENABLE_LOCAL_INFILE=1

在 odbc.ini 连接详细信息中。

在您的 R 代码中,尝试:

odbcDriverConnect("DSN=dsnName;ENABLE_LOCAL_INFILE=1")

或者,尝试为您的 ODBC 连接编辑 Windows 注册表项:

  1. 打开 Windows 注册表编辑器 - 单击 Windows 图标并键入 regedit
  2. HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI。这是我的 ODBC 条目所在的位置。
  3. 选择要更改的 ODBC 连接并Edit>New>String Value从菜单中进行选择。
  4. 为新条目命名ENABLE_LOCAL_INFILE并将其值设置为 1。

https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-configuration-connection-parameters.html

升级我的连接器并更新 odbc.ini 对我来说是成功的。


推荐阅读