学习资源
MongoDB中文网
https://www.mongodb.org.cn/tutorial/6.html
菜鸟教程
https://www.runoob.com/mongodb/mongodb-linux-install.html
官网教程:最好(别的教程具有时效性,官方的文档最权威)
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
踩了几个小坑,网上多数的MongoDB教程已经过时了,因此出一篇关于MongoDB的安装与使用,此篇主要是安装
安装mongodb
第一种 apt-get(推荐)
按照官网的教程来安装(如果失败可能是时间过久,就像很多教程一样,过期了,请自行前往官网的文档安装)
地址:https://docs.mongodb.com/manual/
wget 下载链接
sudo dpkg -i 包名(deb包)
sudo apt-get install -y mongodb-org
即安装完成
第二种 tar解压缩(不推荐)
下载tar压缩包
wget 下载链接
解压缩
tar -zxvf 包名.tgz
添加环境变量
sudo cp /bin/* /usr/local/bin/
将解压缩后的bin目录下的文件 全部复制到 用户的环境变量文件夹下,然后更新环境变量
安装mongosh
https://www.mongodb.com/try/download/shell?jmp=docs
可以在本地安装mongosh.msi 然后连接服务器的mongodb(推荐)
安装后,连接mongodb
服务器安装mongosh
wget 下载链接deb
sudo dpkg -i 包名(deb包)
sudo apt-get install -y mongodb-mongosh
使用同理
配置
配置文件所在 /etc/mongod.conf
找到配置文件,然后修改
如果不是通过 apt get方式安装的mongdb,通过tar解压安装(不建议),则需要自己创建config文件
修改完 重启即可
sudo systemctl restart mongod
sudo systemctl stop mongod
sudo systemctl start mongod
验证是否启动成功
sudo systemctl status mongod
mongosh 查看当前mongod 状态
mongosh
附config内容
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb(不允许修改)
journal:
enabled: true
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log(不允许修改)
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0(必须要修改)
# how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo
启动
第一种启动方式
sudo systemctl start mongod
开启默认端口 27017 且不允许修改配置文件的 db 和 log位置,改了就无法启动
如果出现 Failed to start mongod.service: Unit mongod.service not found.
则 sudo systemctl daemon-reload
停止:sudo systemctl stop mongod
重启:sudo systemctl restart mongod
查看状态:sudo systemctl status mongod
第二种启动方式(推荐)
将配置文件拷贝一份,然后可以自定义db 和log 文件的位置,且可以开启多个Mongodb,监听不同端口
启动举例:mongod -f /root/MongoDB/mongodb.cfg --fork
停止:mongod -f /root/MongoDB/mongodb.cfg --fork
中间 -f 后面就是新配置文件的所在地,fork启动不会默认使用配置文件,必须要加入-f 参数,否则默认监听本地,外部无法连接
storage:
dbPath: /var/lib/mongodb(允许修改)
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log(允许修改)
net:
port: 27017(要监听的端口)
bindIp: 0.0.0.0(必须要修改)
processManagement:
timeZoneInfo: /usr/share/zoneinfo
连接
使用Navcat连接,输入服务器ip地址,端口即可
安全加密
在配置文件中,默认不启动身份验证,也就是说只要知道你的ip地址,就可以操作数据库里的全部数据,显然不太安全
因此开启身份验证,只允许自己登录
在配置文件中加入
security:
authorization: enabled
然后运行mongosh 创建用户管理员
mongosh
use admin
db.createUser(
{
user: “myUserAdmin”,
pwd: passwordPrompt(), // or cleartext password
roles: [ { role: “userAdminAnyDatabase”, db: “admin” }, “readWriteAnyDatabase” ]
}
)
创建后 想要再创建用户,需要mongosh 认证账号和密码
关闭 mongodb ,重新启动
然后 mongosh
use admin
db.auth(“myUserAdmin”, passwordPrompt())
输入密码即可再创建新的用户
再次连接 使用admin 数据库,这是用户认证数据库,所有用户在里面