用obloader导入带有繁体汉字的csv文件报错: reason: utf8mb4.

【 使用环境 】docker中的 oceanbase镜像容器
【 OB or 其他组件 】obloader
【 使用版本 】
【问题描述】使用obloader将一个带有繁体汉字的csv文件导入数据库中时,报错:
2025-05-28 03:04:02 [INFO] Trying to establish JDBC connection to root@sys
2025-05-28 03:04:03 [ERROR] Load failed! Error: Unable to establish connection to server, reason: utf8mb4.
【复现路径】
代码是拷打deepseek问出来的,我确实对语法不熟。。
以下是完整的过程:在powershell中运行:
PS C:\Windows\system32> & “C:\Program Files\Docker\Docker\ob-loader-dumper\bin\windows\obloader.bat” -h 127.0.0.1 -P 2881 -u “root@sys” -p “123456” -D epitaphBase --csv --table “epitaph_data” -f “C:\Users\14879\Desktop\ancientWord\code\rewriteCSV.csv” --skip-header --column-separator “,” --null-string="’’’" --character-set utf8mb4 --direct --thread 4 --batch 5000 --log-path “C:\ob_import.log” --rpc-port 2882
JAVA_OPTS: “1.8.0_441” “1.8.0” “441” “-XX:+UseConcMarkSweepGC” “-Xms4G” “-Xmx4G”
2025-05-28 03:04:02 [INFO] Parsed args:
[–csv] true
[–file-path] C:\Users\14879\Desktop\ancientWord\code\rewriteCSV.csv
[–log-path] C:\ob_import.log
[–null-string] ‘’’
[–skip-header] true
[–thread] 4
[–character-set] utf8mb4
[–host] 127.0.0.1
[–port] 2881
[–user] root@sys
[–password] ******
[–database] epitaphBase
[–sys-user] root
[–table] [epitaph_data]
[–batch] 5000
[–direct] true
[–rpc-port] 2882

2025-05-28 03:04:02 [INFO] Log files will be written to C:\ob_import.log
2025-05-28 03:04:02 [INFO] Trying to establish JDBC connection to root@sys
2025-05-28 03:04:03 [ERROR] Load failed! Error: Unable to establish connection to server, reason: utf8mb4.

  • Note:
  •   To connect OBServer directly, you may specify `-P/--port` as "2881" by default, while `-u/--user` should be of format: '<user>@<tenant>';
    
  •   To connect ODP, you may specify `-P/--port` as "2883" by default, while `-u/--user` should be of format: '<user>@<tenant>#<cluster>';
    
  •   To connect Cloud OceanBase, you may add cli arg: `--public-cloud`, while `-u/--user` should be of format: '<user>'.
    

2025-05-28 03:04:03 [ERROR] System exit 1

楼主还有早八,顶不住了先睡了。。

不用character–set参数试一试哈

2 个赞

bat 命令应该是 windows , 根据文件格式来吧 ,是不是应该 gb 格式的源数据文件呢?

或者使用utf8 格式打开试下
注意:特别注意乱码问题

1 个赞

目前问题初步解决(雾?)需要设置数据库端的varchar格式为utf8mb4,并且本地的源文件设置为UTF-8(而不是BOM 后缀)。同时,删除上述步骤中的”–character-set utf8mb4“。不知为何,删除了这个检查步骤,改为人力审查以后就解决了。。。