小编Sle*_*667的帖子

MacOS系统上的MySQL Docker Container INFILE/INTO OUTFILE语句

我有一个Java程序和一个mysql Docker容器(图片:mysql:5.7.20).我的MacOs是High Sierra 10.13.4.

问题简而言之

在MacOS上使用Docker(10.13.4.).在docker容器里面(图片:mysql:5.7.20)主要是查询(从java程序执行)

  • LOAD DATA INFILE ...
  • SELECT ... INTO OUTFILE ...

工作正常,但有时java程序抛出异常:

  • SQLException:无法创建/写入文件'...'(错误代码:2 - 没有这样的文件或目录)
  • SQLException:无法获取'...'的统计信息错误代码:2 - 没有这样的文件或目录)
  • SQLException:MySQL服务器使用--secure-file-priv选项运行,因此无法执行此语句
  • SQLException:找不到文件'...'(错误代码:2 - 没有这样的文件或目录)

顺便说一句.文件存在且权限应该没问题(参见更长的版本)

版本较长

该过程如下:

  • 创建.csv文件
  • 此.csv文件将复制到为docker容器安装的目录中
    • docker-compose volume部分: - "./data/datahub/import:/var/lib/mysql-files/datahub/import"
  • 然后MySQL将此.csv文件读入表中:
    • LOAD DATA INFILE '.csv-file' REPLACE INTO TABLE 'my-table';
  • 然后在该数据库上的一些东西发生
  • 之后,MySQL编写.csv输出文件
    • SELECTtbl .sku ,tbl .删除了,tbl .data_source_valuesINTO OUTFILE 'output.csv' FIELDS TERMINATED BY '|' ENCLOSED BY '"' ESCAPED BY '"' FROM (SELECT ...

这个项目有一些针对这个过程的java集成测试.这些测试大多是绿色的,但有时它们会失败:

  • SQLException:无法创建/写入文件'...'(错误代码:2 - 没有这样的文件或目录)
  • SQLException:无法获取'...'的统计信息错误代码:2 - …

java mysql docker docker-compose

27
推荐指数
1
解决办法
1103
查看次数

标签 统计

docker ×1

docker-compose ×1

java ×1

mysql ×1