【发布时间】:2021-09-06 10:18:15
【问题描述】:
我的 Java gradle 项目中有几个 .txt 文件,我使用这些文件在 sql 脚本中使用 MySQL 语句 LOAD DATA LOCAL INFILE 填充数据库。
我的PC上运行着一台MySQL服务器,其主机名为127.0.0.1,端口为3306,数据库名称为test,所以在gradle项目的build.gradle文件中,我通过以下方式配置flyway:
flyway {
url = 'jdbc:mysql://127.0.0.1:3306/test'
user = 'root'
password = '111111'
}
.sql 文件的示例是
LOAD DATA LOCAL INFILE 'data/categories.txt' INTO TABLE category
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n';
但是当使用gradle flywayMigrate -i 运行迁移时,我得到了以下错误:
Loading local data is disabled; this must be enabled on both the client and server sides
我想我已经在 server 端启用了它,如下所示,这是一个MySQL Command Line Client 截图。
希望我做得对。
这一步之后还是报错,所以我想我也需要在client端启用它,也就是在Java gradle项目中,对吗?
基于https://dev.mysql.com/doc/refman/8.0/en/load-data-local-security.html,我应该设置ENABLE_LOCAL_INFILE = 1。
但是怎么做呢?我应该在哪里添加这个ENABLE_LOCAL_INFILE = 1 连接字符串?
希望有人可以帮助我。 提前致谢!
【问题讨论】: