工作的时候在用mongodump
导出数据的时候发现一个奇怪的问题,环境如下:
在 docker 环境下一切正常,但是在 windows 环境下,如果集合名称中包含有“作
”这个中文字符,则使用mongodump
导出会报错,报错内容如下:
contains a path separator '作' and can't be dumped to the filesystem
各位大佬如果有类似环境的,能够帮忙看下是否有同样的问题,还是我的导出命令或者设置有不对的地方
如果问题存在的话,有没有什么解决办法,多谢多谢
1
smartbot 2021-08-03 17:12:42 +08:00
数据库, 集合命名, 不应该默认使用 a-zA-Z:_- 字符集命名的吗?
|
3
alsas 2021-08-03 20:28:41 +08:00
同用 DUMP 备份有中文的集合库会有这种问题 很坑
|
4
Kinnice 2021-08-04 07:55:22 +08:00 via Android
改名导出
|
6
smartbot 2021-08-04 13:57:27 +08:00
如果 docker 下没问题, 就使用 docker 执行导出: https://www.arkfeng.xyz/2019/03/18/mongo_note/#44-mongo-%E7%89%88%E6%9C%AC%E4%B8%8D%E5%85%BC%E5%AE%B9
|
7
dousha99 2021-08-04 22:16:26 +08:00
「作」的 Unicode 是 0x4f5c; 而反斜杠的 Unicode 是 0x5c. 虽然按道理集合名称应该是用 UTF-8 之类编码的,但可能 mongodump 或者中间某个过程解码成字节流后就直接开始当 ASCII 处理了。在 Windows 环境下反斜杠是 path separator, 自然就会报错。
顺带一提,由于 Windows 诞生于 Unicode 之前,所以 Windows 下的编码相关问题层出不穷。尽可能只用 [a-zA-Z0-9] 做名字有益身心健康。 |
9
sunhk25 2021-08-20 09:02:17 +08:00
|