可查看官方文档:
本文也是参照官方文档搭建的
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/#configure-the-package-management-system-yum
正式操作
vi /etc/yum.repos.d/mongodb-org-4.2.repo
在文件中添加如下信息
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
yum install mongodb-org -y
此操作需要一定时间 ,当执行完毕后
使用如下命令进入客户端
mongo
禁用mongo自动升级,修改/etc/yum.conf文件
vim /etc/yum.conf
#在文件中加入下方配置
exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
保存退出
exmple :操作mongo的命令如下 (开,关,从启 ,查看状态)
启动:systemctl start mongod
重启:systemctl restart mongod
关闭:systemctl stop mongod
查看运行状态:systemctl status mongod
执行 systemctl start mongod 命令启动Mongo
systemctl status mongod
#出现如下信息则说明mongo已开启
● mongod.service - MongoDB Database Server
Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2020-01-17 19:37:33 CST; 5s ago
Docs: https://docs.mongodb.org/manual
Process: 18740 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS)
Process: 18738 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
Process: 18734 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
Process: 18733 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
Main PID: 18743 (mongod)
CGroup: /system.slice/mongod.service
└─18743 /usr/bin/mongod -f /etc/mongod.conf
查看mongo日志
more /var/log/mongodb/mongod.log
启动后出现或日志中出现 错误代码 code=14 则说明之前服务器上安装过Mongo 但是数据并没有完全清除
解决命令: (清除之前文件并从启)
cd /tmp
rm -rf mongodb-27017.sock
systemctl restart mongod
首先关闭mongo库 (之前启动时未修改配置文件)
systemctl stop mongod
进入mongo配置文件
cd /etc/
ll
vim mongod.conf
如没有vim命令可用以下命令进行安装
sudo yum install -y vim
修改文件如下位置 (将127.0.0.1改为0.0.0.0)
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
保存后退出
cenos7 最好使用firewall
如未安装则用以下命令进行安装
yum install firewalld firewalld-config
查看防火墙是否开启
firewall-cmd --state
如没有开启且确定不需要开启则略过下面
查看开启的防火墙端口列表
firewall-cmd --permanent --list-port
如没有27017端口则将其开启
firewall-cmd --zone=public --add-port=27017/tcp --permanent
firewall-cmd --zone=public --add-port=27017/udp --permanent
重启防火墙
firewall-cmd --reload
如果是云服务器则需要在在安全组配置中加入27017端口配置
systemctl start mongod
查看是否开启
systemctl status mongod
netstat -untlp
使用navicat12 或者studio3T 连接测试
至此 无密码版Mongodb数据库搭建完毕
------------------------------------------------------Mongodb 配置密码----------------------------------------------------------------------
[root@alibyleilei /]# mongo
#或者
[root@alibyleilei /]# mongo --port 27017
进入mongo后切换到自带的admin数据库
use admin
创建超级用户语句
db.createUser(
{
user: "root",
pwd: "123456",
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
}
)
ctrl+c退出mongodb
修改Mongodb的配置文件 使用yum源其位置在/etc/mongod.conf
修改配置
vim /etc/mongod.conf
#放开下方的security:
#修改配置如下
security:
authorization: enabled
保存文件从新启动mongo
:wq
systemctl restart mongod
使用密码链接测试
mongo --port 27017 -u "root" --authenticationDatabase "admin" -p
#输入密码后出现数据库消息则成功 或者使用studio3t进行连接测试
exmple:我在数据库中有一个cx_sc数据库
创建cx_sc对应的普通用户 leilei: (此用户链接成功后仅可查看以及操作cx_sc数据库)
use cx_sc
db.createUser({user: "leilei", pwd: "123456", roles: [{role: "readWrite", db: "cx_sc" }]})
使用studio3t 进行链接测试
链接成功
#首先将需要修改用户密码的用户登录到admin 数据库
mongo --port 27017 -u "root" --authenticationDatabase "admin" -p
#输入密码进行验证,成功后进入到admin中
#使用如下命令进行修改密码 (用户,需要修改的密码)
db.changeUserPassword('root','123456');
首先停止服务
systemctl stop mongod
删除所有相关依赖包
yum erase $(rpm -qa | grep mongodb-org)
再删除所有日志以及数据
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongo
注释掉之前的禁止mongo升级文件 (否则从新下载命令会出错)
vim /etc/yum.conf
#将下方代码进行注释
exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
Springboot项目yml配置
spring:
data:
mongodb:
uri: mongodb://cx_sc库用户:cx_sc库用户密码@47.97.118.22:27017/cx_sc
# 上方为明确指定某个数据的用户进行连接
# 也可以使用admin 数据库中的用户进行连接 统一到admin 数据库进行认证
# admin 用户认证 url 写法: mongodb://账户:密码%40@ip:端口/数据库名?authSource=admin&authMechanism=SCRAM-SHA-1
SpringBoot整合MongoDB
SpringBoot整合MongoDB(一)
SpringBoot整合MongoDB(二)多数据源配置,Aggregation管道使用
先查看 未使用副本集 studio 3T 连接信息
这里在这里做一个说明 由于个人目前学习水平有限 并受到服务器数量限制 这里仅仅做了一个MongoDB4.2单机转只有一个实例的副本集以支持事务 的事情 ,这种场景满足于 项目中 可不使用Mongodb集群 但需要mongodb 事务的场景
vim /etc/mongod.conf
#security:
# authorization: enabled
systemctl restart mongod
replication:
oplogSizeMB: 102400
replSetName: searay7 #searay7 是你要搭建副本集的名字
sharding:
clusterRole: shardsvr
由于吧认证信息注释掉了 所以只需要输入mongo命令即可
mongo
会出现类似如下 错误 ,这个其实就是设置了副本集配置 但并未搭建的提示错误
因此,我们开始搭建副本集。
需要先进入 mongo 的admin 数据库
use admin
初始化副本集,运行rs.initiate命令 就算是有多个副本集节点 也只能选择一台机器执行此命令
这里说明下: _id:“searay7” 内容为配置文件中 配置的副本集名 hosts是 节点端口IP
> cfg={_id:"searay7",members:[ {_id:0,host:"192.168.10.176:27017"}] }
> rs.initiate(cfg)
出现以下字样表示副本集设置完成
也会出现 副本集名字 命令提示符
查看副本集配置
>rs.conf()
查看副本集状态
> rs.status()
可以看档 当前 此节点为主节点 (主节点 可读可写 从节点仅可读)
此时我们再使用 show dbs 命令 便可查看数据库信息了
使用studio 3t 进行连接测试 发现信息变成了 replica
最后一步 还原咱们的连接密码 即放开咱们 mongod.conf 中 刚刚注释的security信息即可 连接测试查看
到此 Mongodb4.2单机转只有一个实例的副本集以支持事务 就完成了!!!
事务测试 我放在了 SpringBoot整合MongoDB(二)多数据源配置,Aggregation管道使用