【问题标题】:Cannot import large CSV file in MariaDB无法在 MariaDB 中导入大型 CSV 文件
【发布时间】:2021-05-10 03:25:51
【问题描述】:

我有一个 100G 的大型 CSV 文件,有 1.8 亿行。我需要将此文件导入 MariaDB。

我使用了mysqlimport,运行三个小时后出现错误2013。如果我在抛出错误后对表运行select,则表为空。

如何在 MariaDB 中上传非常大的文件?如何解决这个问题?

C:\Users\pgsch\Downloads>mysqlimport --verbose --local -u user01 -p bank_0001_test fm_loans fm_loans  --fields-terminated-by="|"
Enter password: ********
Connecting to localhost
Selecting database bank_0001_test
Loading data from LOCAL file: C:/Users/pgsch/Downloads/fm_loans into fm_loans
mysqlimport: Error: 2013, Lost connection to MySQL server during query, when using table: fm_loans

【问题讨论】:

  • 增加 max_allowed_pa​​cketinteractive_timeout 变量并尝试。
  • 我运行的命令是windows程序,可以用SET作为windows环境变量吗?我必须使用 mysql sheel 来设置这些变量吗?
  • 是的,你需要登录 MySQL shell 并全局设置参数并开始导入。

标签: mysql mariadb


【解决方案1】:

此错误消息有三个可能的原因:

  1. 通常表示网络连接有问题,如果经常出现此错误,请检查网络状况
  2. 有时,当作为一个或多个查询的一部分发送数百万行时,会出现“查询期间”形式。
  3. 这种情况很少发生在客户端尝试与服务器建立初始连接时

更多详情read

原因 1:set global max_allowed_packet=101000000000; (101 GB) 将允许的最大数据包大小设置为大字节数。对于此类大数据文件,默认值可能会引发错误。

原因 2: SET GLOBAL interactive_timeout=60; 从默认的 30 秒到 60 秒或更长

原因 3: SET GLOBAL connect_timeout=60;

补充参考:

  1. Error Code: 2013. Lost connection to MySQL server during query
  2. https://dev.mysql.com/doc/refman/5.7/en/error-lost-connection.html
  3. https://mariadb.com/docs/reference/mdb/system-variables/interactive_timeout/
  4. https://manios.org/2013/03/19/import-a-large-sql-dump-file-to-a-mysql-database-from-command-line

【讨论】:

  • 文件是本地的,不在网络上。还有,我运行的命令是windows程序,可以用SET作为windows环境变量吗?
  • 是的,你可以@ps0604
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-19
  • 1970-01-01
  • 1970-01-01
  • 2014-03-15
  • 2012-07-10
  • 1970-01-01
相关资源
最近更新 更多