文章写在2023年3月1日
目前最新的mangodb稳定版本是6.04
1.安装server
server安装包为mangodb的程序主体。
服务器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的mangodb工具测试链接就可以连通了
2.安装mangodbsh
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