mongodb踩坑总结
2024-02-26 15:13:18

在使用 mongodb 的过程中,遇到了一些问题,做一个记录

兼容问题

mongodb Ops 5.0 不支持管理 mongodb 6.0 的数据库的,具体可以参考这个文档

所以在迁移 mongodb 数据库的时候,不要轻易升级版本。(最终是靠应用的导出和导入做的迁移,而不是直接把 mogodb 的数据库文件拷贝过去)

docker 挂载卷

使用 docker 部署 mongodb,如果是把主机目录挂载进容器的方式,那么一定要注意目录的所属用户和权限,否则会出现权限不足的问题。

在 docker 中指定用户可以使用 user 参数

example: https://code.visualstudio.com/remote/advancedcontainers/add-nonroot-user

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ARG USERNAME=user-name-goes-here
ARG USER_UID=1000
ARG USER_GID=$USER_UID

# Create the user
RUN groupadd --gid $USER_GID $USERNAME \
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
#
# [Optional] Add sudo support. Omit if you don't need to install software after connecting.
&& apt-get update \
&& apt-get install -y sudo \
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
&& chmod 0440 /etc/sudoers.d/$USERNAME

# ********************************************************
# * Anything else you want to do like clean up goes here *
# ********************************************************

# [Optional] Set the default user. Omit if you want to keep the default as root.
USER $USERNAME