mongodb
mongodb版本: 6.0.1
安装流程:https://juejin.cn/post/6985093901329629192
- 下载完成之后,将文件放到 /usr/local下,把文件夹的名字改成mongodb
- 配置全局环境变量
cd ~/
touch .bash_profile // 创建 .bash_profile 如果改文件已经存在,则不用创建
open -e .bash_profile // 打开.bash_profile文件
- 在文件中加入如下内容
export PATH=${PATH}:/usr/local/mongodb/bin
- 在mongodb目录下创建 data log文件夹,并赋予文件夹权限,执行一下命令
cd /usr/local/mongodb
mkdir data log
sudo chown hallwowu /usr/local/mongodb/data
sudo chown hallwowu /usr/local/mongodb/log
- 开启后台服务,同时设置log和data路径
–fork: 后台启动服务
mongod --fork --dbpath /usr/local/mongodb/data --logpath /usr/local/mongodb/log/mongo.log --logappend
报错: 出现错误原因:有另外的mongod服务在跑,我们需要杀对应的进程
- 处理错误
ps -ef | grep mongo
然后通过一下命令杀死进程
kill -9 pid
pid: 对应的是我选中的数字 61636,根据自己的进程号写
参考文档:https://www.jianshu.com/p/1e4040679d6e
- 验证
mongosh
http://127.0.0.1:27017/ 访问地址 返回 It looks like you are trying to access MongoDB over HTTP on the native driver port.
代表你成功了。
- 关闭mongodb服务
use admin
db.shutdownServer({force: true})
可以通过ps -ef | grep mongo 来查看是否还有mongo进程,默认有一个,如果有两个以上,代表服务没有被关闭。
方式二:
这里咱们还可以使用配置文件来启动mongodb服务
mongod -f /usr/local/mongodb/etc/mongo.conf
咱们在/usr/local/mongodb/etc 目录下创建mongo.conf 文件
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /usr/local/mongodb/log/mongo.log
# Where and how to store data.
storage:
dbPath: /usr/local/mongodb/data/
journal:
enabled: true
# how the process runs
processManagement:
fork: true # fork and run in background
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1
security:
authorization: enabled
使用配置环境关闭mongodb服务时,会报错
我们需要授权,首先我们登入, 注意我们要进入对应的数据库, use admin
db.auth('admin','123456')
db.grantRolesToUser('admin',[{role: "hostManager",db:"admin"}])
接着我们在关闭mongodb服务就OK了
db.shutdownServer({force: true})
当我们配置完mongo.conf 并重启之后,我们直接使用mongosh命令则不能连接上服务器
mongosh admin -u admin -p 123456
//最前面的admin是数据库 -u后面的admin是用户名,-p 后面的是密码
当你直接通过mongosh 直接登入之后,可以进入对应的数据库,但是你没有权限退出服务,导致你下次再进入的时候因为有mongo服务存在,而不能连接成功,我们得先通过一下命令,先登入,然后才能关闭服务。
先通过mongosh登入,在通过一下命令进行鉴权也是OK的
db.auth('admin','123456') // 用户名和密码