无法使用 MySQL LOAD DATA LOCAL infile 到远程 MySQL 服务器

VoI*_*IPX 4 mysql coldfusion

目前,我们正在迁移 ColdFusion 2021 服务器环境。旧环境是基于CF2016和MySQL 5.7构建的。新环境是CF2021和MySQL 8.0.27。另外,我们已经拆分了 CF 服务器和 MySQL 服务器,因此此时它们是 2 个不同的服务器。

我们在 CF 代码中有一个函数,它可以(本地)创建 csv 文件并插入到 MySQL 服务器的表中。

查询是这样写的:

LOAD DATA LOCAL infile 'local-path-to-file' into table op_customer_call_records_work
fields terminated by '|'
lines terminated by '\n'
(master_id,map_id,host_id,,..etc..,cdr_source)
Run Code Online (Sandbox Code Playgroud)

当尝试插入时,我收到此错误:

Executing Database Query. (Loading local data is disabled; this must be enabled on both the client and server sides)
Run Code Online (Sandbox Code Playgroud)

我已经在 my.cnf 中进行了设置:

[client]  
loose-local-infile=1

[mysql]
local-infile=1

[mysqld]
local-infile=1
secure-file-priv = ""
Run Code Online (Sandbox Code Playgroud)

并重新启动MySQL服务器。

我的假设是 my.cnf 文件中的 [client] 标记不正确或被忽略。另外,CF 数据源连接器使用名为“mysql-connector-java-8.0.22.jar”的 java 文件(如果有帮助的话)。

任何帮助将非常感激!谢谢

Bil*_*win 5

选项文件中的部分[client]仅适用于 MySQL 命令行客户端,例如mysqlmysqldumpmysqladmin。它不适用于其他客户端接口、API 或连接器。因此它不适用于 ColdFusion。

您需要使连接器启用 local-infile。

例如,如果您使用 MySQL Connector/J 将 ColdFusion 连接到 MySQL Server,则需要将该allowLoadLocalInfile选项添加到 JDBC URL。请参阅https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-connp-props-security.html