mysql - 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
在配置文件中)。
有没有其他人经历过这个?
谢谢和亲切的问候,
约翰内斯
解决方案
最新版本的 MySQL ODBC 连接器 (> 8.0.14) 允许您设置
ENABLE_LOCAL_INFILE=1
在 odbc.ini 连接详细信息中。
在您的 R 代码中,尝试:
odbcDriverConnect("DSN=dsnName;ENABLE_LOCAL_INFILE=1")
或者,尝试为您的 ODBC 连接编辑 Windows 注册表项:
- 打开 Windows 注册表编辑器 - 单击 Windows 图标并键入 regedit
- 去
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI
。这是我的 ODBC 条目所在的位置。 - 选择要更改的 ODBC 连接并
Edit>New>String Value
从菜单中进行选择。 - 为新条目命名
ENABLE_LOCAL_INFILE
并将其值设置为 1。
https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-configuration-connection-parameters.html
升级我的连接器并更新 odbc.ini 对我来说是成功的。
推荐阅读
- java - Java Tower Of Hanoi 将数字转换为字符串
- android - Dagger/MissingBinding 但模块存在
- python - Python 执行简单代码的时间过长……可能进入了无限循环
- java - 如何在java中的一个文件中分别编译2个类?
- javascript - 根据vue中的路线改变颜色
- angular - 来自外部组件的角度触发功能
- python - 分数增加时如何使物体的速度增加?
- sql - 如何合并具有不同 WHERE 子句的两个 SELECT 查询
- hibernate - 为什么在休眠中使用锁定策略,而在 DBMS 内部处理它?
- reactjs - 无法使用 API 调用呈现数据