Skip to main content

MongoDB安装

Linux

参考

  1. docker pull mongo

  2. 创建存储数据的文件夹

mkdir -p /data/mongodb/databases
  1. 给所有权限
chmod 777 /data/mongodb/databases
  1. 运行mongo程序 -d 后台运行 -v 运行路径 -p 映射端口 --privileged 获取systemctl权限 -e MONGO_INITDB_ROOT_USERNAME=root 设置mongodb的root账号 -e MONGO_INITDB_ROOT_PASSWORD=msdnmm 设置mongodb的root密码

放行端口

firewall-cmd --zon=public --add-port 27017/tcp --premanent
firewall-cmd --reload

运行示例

docker run \
-d \
--restart=always \
--name mongodb \
-v /data/mongodb/databases:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=msdnmm \
--privileged=true \
-p 27017:27017 mongo

社区版/企业版

Mongo 示例

  1. 运行docker

mac: 添加此条命令: --platform linux/amd64

docker run \
--platform linux/amd64 \
--restart=always \
--name mongodb \
-v /data/mongodb/databases \
-d \
-p 27017:27017 \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=msdnmm \
mongodb/mongodb-community-server //社区版
mongodb/mongodb-enterprise-server //企业版
  1. 修改配置文件,不修改默认只为127.0.0.1(Docker本地) Mongodb 进入mongodb容器修改 使用,分割多IP
mongod --bind_ip 192.168.0.152,139.198.165.102

开通全部IP

  • net.bindIpAll
  • 0.0.0.0 IPV4
  • ::,0.0.0.0 IPV6+IPV4
mongod --bind_ip net.bindIpAll

另类方式

find / -name "mongd.conf"
  1. 修改为放行的端口, 示例为net.bindIpAll,即0.0.0.0
bindIp: net.bindIpAll

![[Pasted image 20230224143009.png]]

  1. 查看是否正确
docker exec -it mongo bash
cat /etc/mongod.conf
  1. 如不正确则返回第二步继续操作, 选择其他mongod.conf文件修改

  2. 连接Mongo

mongo admin
  1. 创建root账户 参考
use admin
db.createUser(
{
user: 'root',
pwd: 'admin',
roles:[ { role: '<用户名>', db: '<授予的数据库>' } ]
}
)
  1. 连接
mongo -u <用户>
  1. 创建用户 角色权限参考
db.createUser(
{
user: '<用户名>',
pwd: '<密码>',
roles:[ { role: '<用户名>', db: '<授予的数据库>' } ]
}
)

Q&A: 容器被占用,删除即可

docker rm -f <容器ID>

Q&A: 需要开放端口? 参考 ![[Pasted image 20220726121543.png]]

Windows:

  1. docker pull mongo
  2. docker run --name mongo -d -p 27017:27017 mongo
  3. docker exec -itd mongo

错误: CPU不支持AVX 检查当前电脑是否支持CPU的AVX指令

  1. 进入WSL的命令行模式
  2. 查看/proc/cpuinfotags字段是否包含avx,如果没有,则电脑不支持
cat /proc/cpuinfo 

解决方案: 不使用mongo5.x以上上版本