如何在DataGrip中设置LOAD DATA工作目录?



我在学校有一个任务,将一些CSV数据加载到我的MariaDB实例中。导入内容如下:

LOAD DATA LOCAL INFILE 'products.csv'
INTO TABLE products
CHARSET utf8
FIELDS
TERMINATED BY ','
ENCLOSED BY '"'
LINES
TERMINATED BY 'n'
IGNORE 1 LINES
(product_id, name ...)
;

SQL和CSV文件都在"文件"面板的同一目录下。

我得到的(非常合乎逻辑的)错误是:

[2021-01-22 12:34:41] [22000][-1] (conn=184) Could not send file : products.csv (No such file or directory)

我知道DataGrip有一个"从文件导入数据"工具。但是在使用LOAD DATA时,一定有办法设置工作目录,对吗?

不能设置LOAD DATA LOCAL INFILE的默认目录

向服务器发送LOAD DATA LOCAL INFILE语句后,服务器解析该语句,提取文件名,并向客户端请求指定文件名的内容。

如果客户端无法打开文件,将返回一个错误。

因此,如果您没有在文件名中指定路径,请确保该文件位于您当前的工作目录(该目录可能与您的应用程序启动的目录不同)。

最佳实践总是指定完整路径。

例如,MySQL 8提供了MYSQL_OPT_LOAD_DATA_LOCAL_DIR选项,
这会影响LOAD DATA操作的客户端本地能力。它指定在LOAD DATA LOCAL语句中命名的文件必须位于的目录。

最新更新