ubuntu 22.04 mongodb

文章详细介绍了如何在Ubuntu22.04上安装MongoDB6.0.4服务器和shell,包括下载deb包、配置mongod.conf文件、创建用户、新建数据库以及启用用户验证。此外,还解决了使用systemctl启动mongod服务时遇到的权限问题。
摘要由CSDN通过智能技术生成

文章写在2023年3月1日

目前最新的mongodb稳定版本是6.04

1.安装server

server安装包为mongodb的程序主体。
服务器deb安装包下载地址

https://www.mongodb.com/try/download/community
ubuntu22.04的server deb 文件url
https://repo.mongodb.org/apt/ubuntu/dists/jammy/mongodb-org/6.0/multiverse/binary-amd64/mongodb-org-server_6.0.4_amd64.deb

sudo vim /etc/mongod.conf

bindIp= 0.0.0.0

mongod -f /etc/mongod.conf

用pycharm的mongodb工具测试链接就可以连通了

2.安装mongodbsh

https://www.mongodb.com/try/download/shell
https://downloads.mongodb.com/compass/mongodb-mongosh_1.8.0_amd64.deb

新建用户

$ mongosh

> use admin

> db.createUser(
     {
       user:"llsxily",
       pwd:"pwd123",
       roles:[{role:"root",db:"admin"}]
     }
  )

> exit

输入服务器ip和刚刚设置的账号密码,即链接成功。
在这里插入图片描述

3.新建数据库

admin> use test1
switched to db test1
test1> db.art.insert({title:'测试',tag:['1']})

在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。

4.开启用户校验或者线上数据库

在配置文件中添加下面的配置,打开用户权限

security:
  authorization: enabled

5.Systemctl启动

用deb安装的时候,会帮我们也写好deb程序,可以直接用下面的指令启动:
systemctl start mongod.service
但是我启动的时候发现一直无法成功启动,用systemctl status也看不到启动的错误信息。
直接配置文件中的运行指令/usr/bin/mongod --config /etc/mongod.conf并没有报错。
问题出在哪里呢?权限。
我的测试服务器一直是用root在运行的。仔细检查service的配置文件/lib/systemd/system/mongod.service发现:
默认的配置文件帮我们配置了叫mongodb的用户,我把他注销掉就没问题了。

[Unit]
Description=MongoDB Database Server
Documentation=https://docs.mongodb.org/manual
After=network-online.target
Wants=network-online.target

[Service]
# 原始的文件配置了名为mongodb的用户
#User=mongodb
#Group=mongodb
EnvironmentFile=-/etc/default/mongod
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
PIDFile=/var/run/mongodb/mongod.pid
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size

修改完需要重新加载配置,运行:
systemctl daemon-reload

设置开机启动:
systemctl enable mongod.service

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值