You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过docker-compose实现CSV文件导入MySQL容器?

解决方案

在docker-compose的MySQL服务配置中新增command字段即可传入自定义启动参数,修改后的完整配置如下:

version: '3.7'

services: 
  db:
    image: mysql
    command: --secure-file-priv=/docker-entrypoint-initdb.d
    ports:
      - 3306:3306
    environment: 
      - MYSQL_ROOT_PASSWORD=root123
      - MYSQL_DATABASE=test
      - MYSQL_USER=test
      - MYSQL_PASSWORD=test123
    volumes:
      - './init.sql:/docker-entrypoint-initdb.d/init.sql'
      - './init_data:/docker-entrypoint-initdb.d/init_data'

注意事项

  • 修改配置后如果之前已经启动过容器,需要先执行docker-compose down -v清理旧容器和关联卷,再执行docker-compose up -d重启服务,否则初始化脚本不会重新执行,新增的启动配置也不会生效
  • 本地./init_data目录对应容器内的绝对路径为/docker-entrypoint-initdb.d/init_data/,在init.sql中编写LOAD DATA语句时需使用容器内的绝对路径,参考示例:
LOAD DATA INFILE '/docker-entrypoint-initdb.d/init_data/你的数据文件.csv'
INTO TABLE 目标表名
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS; -- CSV第一行是表头时保留该行,否则删除
  • 确保本地CSV文件和init_data目录有足够的读权限,必要时可执行chmod -R a+r ./init_data赋予全局读权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:27:00