You need to enable JavaScript to run this app. 在DataGrip中使用LOAD DATA时如何设置工作目录?
优惠活动
大模型
产品
解决方案
定价
更多

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

报错核心原因

LOAD DATA LOCAL INFILE的文件读取逻辑由数据库客户端完成,路径解析规则和DataGrip文件面板里的SQL目录、工作区目录没有自动绑定关系,不存在可以直接修改的全局默认工作目录开关,可通过以下方案解决文件识别失败的问题:

方案1:直接使用文件绝对路径(零配置,最稳妥)

不要使用相对路径'products.csv',把CSV文件在本地系统的完整路径写入语句即可,注意适配路径转义规则:

  • Windows 系统写法(使用正斜杠或双反斜杠,避免SQL转义异常):
LOAD DATA LOCAL INFILE 'D:/school-assignment/products.csv'
INTO TABLE products
CHARSET utf8
FIELDS
    TERMINATED BY ','
    ENCLOSED BY '"'
LINES
    TERMINATED BY '\n'
IGNORE 1 LINES
(product_id, name ...)
;

注意Windows系统不要直接写单反斜杠路径(比如D:\school-assignment\products.csv),会被SQL语法解析为转义符,导致路径识别失败

  • macOS / Linux 系统写法:
LOAD DATA LOCAL INFILE '/home/your-name/school-assignment/products.csv'
INTO TABLE products
CHARSET utf8
FIELDS
    TERMINATED BY ','
    ENCLOSED BY '"'
LINES
    TERMINATED BY '\n'
IGNORE 1 LINES
(product_id, name ...)
;

方案2:修改DataGrip连接的客户端工作目录(保留相对路径写法)

如果你希望继续使用'products.csv'这种简洁的相对路径写法,可以调整数据库连接的执行环境配置:

  • 打开对应MariaDB连接的配置页
  • 找到执行配置栏的「客户端工作目录」设置项
  • 将路径指定为你存放CSV和SQL脚本的同一文件夹
  • 保存配置后重新建立数据库连接,再执行原语句即可正常识别相对路径下的文件

补充:非LOCAL版本LOAD DATA的路径规则说明

如果你后续替换成不带LOCAL关键字的LOAD DATA INFILE语句,此时文件是由MariaDB服务端直接读取,路径是相对于服务端运行时的工作目录,而非你本地电脑的路径,需要满足两个条件才能正常读取:

  • 把CSV文件上传到服务端允许访问的目录下
  • 提前确认服务端secure_file_priv配置开放了对应目录的读取权限

注意:如果执行语句时提示本地文件加载被拦截,需要同时确认两个配置:

  • 服务端的local_infile参数处于开启状态
  • DataGrip的数据库连接设置里勾选了「允许加载本地文件」选项

内容的提问来源于stack exchange,提问作者nwpullman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.07 09:36:07