MongoDB 笔记

目录

  • 1. MongoDB 笔记
    • 1.1. 问题解决
      • 1.1.1. ERROR: child process failed, exited with 51
      • 1.1.2. "std::exception::what(): Operation not permitted\nActual exception type: std::system_error\n\n"

1. MongoDB 笔记

1.1. 问题解决

1.1.1. ERROR: child process failed, exited with 51

warning: initdb logs cannot write to '/proc/1/fd/1', so they are in '/data/db/docker-initdb.log' instead
about to fork child process, waiting until server is ready for connections.
forked process: 30
ERROR: child process failed, exited with 51
To see additional information in this output, start without the "--fork" option.

解决方案:

warning: initdb logs cannot write to '/proc/1/fd/1', so they are in '/data/db/docker-initdb.log' instead
cat /data/db/docker-initdb.log

1.1.2. “std::exception::what(): Operation not permitted\nActual exception type: std::system_error\n\n”

docker run -it mongo:6.0 /bin/bash
docker run -it mongo:6.0 --env MONGO_INITDB_ROOT_USERNAME=root --env MONGO_INITDB_ROOT_PASSWORD=example /usr/local/bin/docker-entrypoint.sh
docker run -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=example -it mongo:6.0 /bin/bash
docker run -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=example -v /tmp/123:/data/db -it mongo:6.0
docker run -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=example -it mongo:6.0 /usr/local/bin/docker-entrypoint.sh mongod

解决方案: 升级 docker 版本为 23.01。原因未知, 参考自 这里。

另附上其它方案(没测试):

使用 docker 的数据卷(Volume)作为保存持久化数据的目录, 数据卷 Volume 可理解为虚拟磁盘。

  • 创建 Volume 虚拟磁盘: docker volume create --name <名称>
  • 删除 Volume 虚拟磁盘: docker volume rm <名称>
docker volume create --name mongodata
docker run --name mongodb -v mongodata:/data/db -p 27017:27017 -d mongo:latest

你可能感兴趣的:(bigdata,mongodb,docker,数据库,mongo,exception)