Centos7手动安装配置MongoDB

1、MongoDB官网下载安装包,并安装

#上传安装包解压到安装目录
tar -zxvf mongodb-linux-x86_64-rhel70-4.4.1.tgz  -C /usr/local
# 进入到安装目录
cd /usr/local
#修改安装文件夹名称为mongodb
mv mongodb-linux-x86_64-rhel70-4.4.1 mongodb 

2、创建必须文件夹

# 创建存放数据的目录
mkdir -p /usr/local/mongodb/data/db
# 创建存放日志的目录
mkdir -p /usr/local/mongodb/logs
# 创建日志记录文件
touch /usr/local/mongodb/logs/mongodb.log

# 赋予文件夹独写权限
chomd -R 777 /usr/local/mongodb/data/db
#赋予文件读写权限
chmod a+w -R /usr/local/mongodb/logs/mongodb.log

3、启动

# 切换至指定目录
cd /usr/local/mongodb/

3.1、前台启动

# 启动后控制台是阻塞的状态
bin/mongod --dbpath /usr/local/mongodb/data/db --logpath /usr/local/mongodb/logs/mongodb.log --logappend --port 27017 --bind_ip 0.0.0.0
# 结束前台启动
ctrl+c
3.2、后台启动
# 控制台不会出现阻塞
bin/mongod --dbpath /usr/local/mongodb/data/db --logpath /usr/local/mongodb/logs/mongodb.log --logappend --port 27017 --bind_ip 0.0.0.0 --fork
# 结束后台启动
bin/mongod --dbpath /usr/local/mongodb/data/db --logpath /usr/local/mongodb/logs/mongodb.log --logappend --port 27017 --bind_ip 0.0.0.0 --fork --shutdown

--dbpath:指定数据文件存放目录
--logpath:指定日志文件,注意是指定文件不是目录
--logappend:使用追加的方式记录日志
--port:指定端口,默认为27017
--bind_ip:绑定服务IP,若绑定127.0.0.1,则只能本机访问,默认本机访问 设置为0.0.0.0为所有机器可以访问

测试是否启动,进入到/usr/local/mongodb使用客户端访问
连接命令:bin/mongo

3.3、配置文件方式(推荐方式)

cd /usr/local/mongodb
# 创建配置文件
vim bin/mongodb.conf
# 赋予文件可执行权限
chmod a+w -R /usr/local/mongodb/bin/mongodb.conf

###################### mongodb.conf内容填充 开始 #######################
# 数据文件存放目录
dbpath  = /usr/local/mongodb/data/db
# 日志文件存放目录
logpath = /usr/local/mongodb/logs/mongodb.log
# 以追加的方式记录日志
logappend = true
# 端口默认为 27017
port = 27017
# 对访问IP地址不做限制,默认本机地址127.0.0.1
bind_ip = 0.0.0.0
# 以守护进程的方式启用,即在后台运行
fork = true
###################### mongodb.conf内容填充 结束 #######################

# 配置完配置文件,启动指定配置文件
bin/mongod -f bin/mongodb.conf
# 停止方式
bin/mongod -f bin/mongodb.conf --shutdown

4、MongoDB相关配置

# 打开环境变量文件
vim /etc/profile
# 找到环境变量的配置
/export
# 环境变量设置
JAVA_HOME=/usr/local/java/jdk1.8.0_261
CLASSPATH=$JAVA_HOME/lib/
MONGODB_HOME=/usr/local/mongodb
PATH=$PATH:$JAVA_HOME/bin:$MONGODB_HOME/bin
export PATH JAVA_HOME CLASSPATH

# 使环境变量立即生效
source /etc/profile

# 配置完环境变量的启动方式
mongod -f /usr/local/mongodb/bin/mongodb.conf
# 关闭服务
mongod -f /usr/local/mongodb/bin/mongodb.conf --shutdown

5、MongoDB项目命令操作

use admin  #切换数据库
db.shutdownServer()  #关闭服务
# 创建用户(用户适用于任意数据库)
db.createUser({
    
    user: "uaad",pwd: "uaad",roles:[{
    
     role: "userAdminAnyDatabase", db: "admin" }]});
# 更改用户角色
db.updateUser("uaad",{
    
    roles:[{
    
     role: "userAdminAnyDatabase", db: "admin" },{
    
     role: "readWriteAnyDatabase", db: "admin" },{
    
     role: "dbAdminAnyDatabase", db: "admin" }]});
# 更改用户密码
db.updateUser("用户名"{
    
    "pwd":"新密码"});
db.changeUserPassword("用户名","新密码");
# 删除用户 需要具有userAdmin或userAdminAnyDatabase或root角色的用户才可以删除其他用户
db.dropUser("用户名称")
#### 在配置文件/usr/local/mongodb/bin/mongodb.conf新增身份认证命令
# 开启身份认证
auth = true
# 认证身份 设置的用户名和密码
db.auth("uaad","uaad");
#可视化工具下载安装(下载右边开源免费版本)
https://robomongo.org/download

6、开放端口号

firewall-cmd --zone=public --add-port=27017/tcp --permanent
firewall-cmd --reload   # 配置立即生效

7、项目连接

如果是新创建数据库,需要验证需要给数据库设置对应的用户和密码,才能连接

 # 新创建数据库lm_db
 use lm_db
 # 创建对应的用户
 db.createUser({
    
    user: "uaad",pwd: "uaad",roles:[{
    
     role: "dbAdmin", db: "lm_db" }]});

MongoDB 目前内置了 7 个角色。

数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root;这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
内部角色:__system
这些角色对应的作用如下:

Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

猜你喜欢

转载自blog.csdn.net/qq_21875331/article/details/117189553