官网下载:https://www.mongodb.com/download-center/community
新建
data/db
etc/mongo.conf
logs/mongo.log
编辑etc/mongo.conf 内容如下
dbpath=/Users/chenmingsong/myspace/install/mongodb-macos-x86_64-5.0.7/data/db
logpath=/Users/chenmingsong/myspace/install/mongodb-macos-x86_64-5.0.7/logs/mongo.log
logappend=true
port=27017
fork=true
auth=true
输入完,点击esc :wq保存退出
扩展
属性解释(以下信息仅仅是属性解释,不需要复制到文件中):
#数据存放位置
dbpath=/usr/local/mongodb-macos-x86_64-5.0.6/data
#日志文件
logpath=/usr/local/mongodb-macos-x86_64-5.0.6/logs/mongo.log
#以追的方式记录日志
logappend=true
#以后台的方式运行
journal=true
#过滤一些无用日志
quiet=true
#开启用户认证
auth=true
#端口号
port=27017
#允许后台运行
fork=true
#允许任何IP进行连接
bind_ip=0.0.0.0
把/Users/chenmingsong/myspace/install/mongodb-macos-x86_64-5.0.7/bin 目录加到PATH(.bash_profile文件)中。
1、添加PATH:
echo 'export PATH=/Users/xyz_persist/Public/mongodb/bin:$PATH'>>~/.bash_profile
2、查看.bash_profile环境变量文件,发现多了一行mongdb配置:
3、添加完成后为使环境变量生效,可重启shell终端,或输入命令 source ~/.bash_profile
注意:
.bash_profile文件就是在/Users/chenmingsong下。
启动的方式有两种,一种是【命令行
】的方式,另一种是【配置文件
】的方式。虽然本篇推荐的方式是【配置文件】方式启动mongdb,但是下面我会把两种方式都写出来。
输入./mongod 启动,弹出如下:
解决方式:
https://www.jianshu.com/p/91aca59456a0
重新启动,发现如下错误:
{“t”:{“$date”:“2021-11-10T08:18:57.122+08:00”},“s”:“E”, “c”:“CONTROL”, “id”:20557, “ctx”:“initandlisten”,“msg”:“DBException in initAndListen, terminating”,“attr”:{“error”:“NonExistentPath: Data directory /data/db not found. Create the missing directory or specify another path using (1) the --dbpath command line option, or (2) by adding the ‘storage.dbPath’ option in the configuration file.”}}
其中NonExistentPath: Data directory /data/db not found. Create the missing directory or specify another path using (1) the --dbpath command line option, or (2) by adding the 'storage.dbPath' option in the configuration file.
告诉我们。没有找到 /data/db 目录 让我们用 --dbpath指定目录启动 或者添加 storage.dbPath 指定目录
使用 --dbpath启动:
bin% ./mongod --dbpath /Users/chenmingsong/myspace/install/mongodb-macos-x86_64-5.0.7/data/db
扩展
如果通过命令的方式启动mongdb服务,完整的命令如下:
sudo mongod --dbpath /usr/local/mongodb/data/db/ --logpath /usr/local/mongodb/logs/mongodb.log --logappend --port 27017 --bind_ip 0.0.0.0 --fork
由于前面我们已经配置了mongdb.conf,所以此处应该指定配置文件启动。
来到mongodb-macos-x86_64-5.0.7目录下,执行下面命令:
chenmingsong@chenmingsongdeMacBook-Pro mongodb-macos-x86_64-5.0.7 % ./bin/mongod -f ./etc/mongo.conf
ps aux | grep -v grep | grep mongod
启动成功后,可以发现data/db目录、logs/mong.log文件都有写入信息。
新开终端窗口,来到bin目录下,输入 ./mongo , 启动客户端,操作数据库:
由于我们已经配置了mongdb的环境变量,所以,即使不在bin目录下也可以直接启动mongdb客户端:
退出客户端:
使用命令show dbs(查看数据库)对MongoDB进行操作时,出现errmsg" : "not authorized on test to execute command { listCollections: 1.0 }
这个提示。
表示没有权限,原因是我们在conf配置文件开启了auth认证,那么虽然我们的客户端可以正常连接到MongoDB服务器,但是如果想要查看数据库的话是需要用户名和密码登录的。
那就赶紧添加用户吧。
1、切换到admin库
use admin;
必须切换到具体数据库,才能给该数据库添加用户和角色。
2、添加用户并赋予角色
db.createUser( {
user: "root",
pwd: "root",
roles: [ { role: "root", db: "admin" } ]
});
3、既然已经添加了用户,用root账号登录
db.auth('root','root');
账号是跟着库走的,所以在指定库里授权,必须也在指定库里验证(auth),哪里创建哪里认证 .
然后再进行测试:(未用root用户登录前,查询不出dbs;用root用户登录验证后可以查询)
当用户创建完毕之后,我们可以通过datagrip启动mongdb客户端。用户名密码是超级管理员-root(具备对任何数据库的任何权限,原则上并不建议使用):
停止:
在linux下大家停止很多服务都喜欢直接kill -9 PID,但是对于MongoDB如果执行了kill -9 PID,在下次启动时可能提示错误,导致服务无法启动,这个时候可以通过执行:
rm -f /app/hadoop/db/mongod.lock
也即删除指定数据目录下的mongod.lock文件即可。
正常停止方法:
kill -2 PID
或者
mongo -host ip:port
先通过客户端连接到需要停止的服务,然后:
use admin
db.shutdownServer();
这样也可以正常停止服务。
23-MongoDB介绍、安装、使用 - 【二、Linux安装mongdb】
https://www.cnblogs.com/TM0831/p/10606624.html