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

MySQL数据加载命令执行后未保存数据问题求助

问题排查与解决方法

核心现象

脚本执行无报错,执行时select能查询到数据,但退出MySQL会话后目标数据库为空,说明会话内的数据未持久化到磁盘。

可能原因及解决步骤

1. LOAD DATA LOCAL的路径与权限问题

  • 替换LOAD DATA LOCAL INFILE为LOAD DATA INFILE:/var/lib/mysql-files/是MySQL默认的secure_file_priv授权目录,服务器端可直接读取该目录下的文件,无需客户端传输。修改后的SQL语句:
    load data infile '$CSV_FILENAME' into table BagEvent fields terminated by ',';
    
  • 确认建表脚本sql_csv_test.sql中,BagEvent表是创建在csv_test库下:要么在use $NEW_DB_NAME;之后执行建表语句,要么建表时显式指定csv_test.BagEvent。

2. 事务未提交

  • 检查sql_csv_test.sql是否包含START TRANSACTION;或BEGIN;但未执行COMMIT;。如果有,在脚本的load data语句后添加提交命令:
    commit;
    
  • 若不确定事务状态,可显式控制自动提交:
    set autocommit=0;
    source $SCHEMA_FILENAME;
    load data infile '$CSV_FILENAME' into table BagEvent fields terminated by ',';
    commit;
    set autocommit=1;
    

3. 数据库上下文切换异常

  • 确保sql_csv_test.sql中没有切换到其他数据库的语句(如use other_db;)。若无法修改该脚本,可在load data语句中显式指定数据库前缀:
    load data infile '$CSV_FILENAME' into table $NEW_DB_NAME.BagEvent fields terminated by ',';
    

4. 排查隐藏错误

  • 在脚本中添加当前数据库检查语句,确认操作上下文正确:
    select database(); -- 输出应为csv_test
    
  • 将脚本执行日志保存到文件,查看是否有未察觉的警告或错误:
    修改脚本的MySQL执行部分:
    mysql -u root -v << QUERY > load_data.log 2>&1
    
    查看load_data.log文件,分析细节输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 03:43:10