DBeaver导入TXT文件必须通过“从CSV文件导入”入口,在文件选择器中手动切换类型为*.txt;目标表须预先存在,分隔符与引号设置须与导出时完全一致,否则解析失败。

导入TXT时选错入口会直接失败
DBeaver没有独立的“导入TXT”按钮,所有文本导入都走 从CSV文件导入 流程。如果你在右键菜单里找“导入TXT”或点“数据库 → 导入 → 文本文件”,根本找不到对应选项——这是最常卡住的第一步。
正确路径是:右键目标表 → 导入数据 → 从CSV文件导入,然后在文件选择器的下拉框中手动切换文件类型为 *.txt(不是默认的 CSV)。这个下拉框藏得深,且不提示支持 TXT,容易忽略。
- 必须确保目标表已存在,DBeaver 不支持用 TXT 文件自动建表
- 如果表不存在,先执行 DDL 建表语句(可从导出时生成的 SQL 复制)
- 导入前别关掉目标表的编辑页签,否则导入向导可能无法识别当前表结构
分隔符和引号设置必须与导出时完全一致
导出时用 TAB 分隔、字段用双引号包裹,导入时也必须设成 列分隔符 = \t、括起字符 = "。哪怕只差一个空格或误选了单引号,DBeaver 就会把整行当一列,或者报 Error reading class info 这类模糊错误。
- 常见导出设置位置:导出向导第三步 → 格式设置 → “文件扩展名”填
txt,“括起字符”按需选"或留空 - TAB 分隔的 TXT,在导入时要手动输入
\t,不能输 “tab” 或空格 - UTF-8 with BOM 的 TXT 文件会导致首列乱码,建议用 VS Code 或 Notepad++ 转成纯 UTF-8
大文件导入卡死或报 EOFException 怎么办
EOFException 不是网络问题,而是 DBeaver 默认用内存缓存整份文件再解析。10MB 以上的 TXT 很容易触发 OOM,尤其 Windows 上默认 JVM 内存才 512MB。
- 临时方案:关闭 DBeaver,编辑
dbeaver.ini,把-Xmx512M改成-Xmx2G(需有足够物理内存) - 更稳方案:改用
load data local infile命令,例如:LOAD DATA LOCAL INFILE '/path/data.txt' INTO TABLE my_table FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'; - 注意 MySQL 需开启
local_infile=ON,且 DBeaver 连接字符串要加</li> </ul> <H3>导出 TXT 时“括起字符”留空反而更安全</H3> <p>很多用户导出时勾选“括起所有字符”,结果导入时字段含逗号或换行就崩了。其实绝大多数纯文本导入场景根本不需要引号——只要原始数据本身不含分隔符(比如用 TAB 而非逗号),<code>括起字符
留空是最简、最稳的选择。- 留空后导出的 TXT 是干净的 TAB 分隔格式,导入时只需设
列分隔符 = \t,其他全默认 - 若数据含换行符(如 TEXT 字段),DBeaver 的 CSV/TXT 导入器处理能力有限,建议先导出为 SQL,或改用
mysqldump+mysql命令行 - 导出时“编码”务必选
UTF-8,别用系统默认编码,否则中文在导入时大概率变问号
- 留空后导出的 TXT 是干净的 TAB 分隔格式,导入时只需设

















