Centos7 使用Yum源安装MongoDB4.2版本数据库
前置:修改yum安装源对mongodb的支持
可查看官方文档:
本文也是参照官方文档搭建的
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/#configure-the-package-management-system-yum
正式操作
(1)修改yum安装mongoDB的repo源文件
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
(2)安装并启动mongo
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
(3)查看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
(4)启动可能遇到的问题
启动后出现或日志中出现 错误代码 code=14 则说明之前服务器上安装过Mongo 但是数据并没有完全清除
解决命令: (清除之前文件并从启)
cd /tmp
rm -rf mongodb-27017.sock
systemctl restart mongod
(5)开启mongo库远程访问权限
首先关闭mongo库 (之前启动时未修改配置文件)
systemctl stop mongod
进入mongo配置文件
cd /etc/
ll
vim mongo.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.
保存后退出
(6)防火墙设置
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端口配置
(7)从新启动mongo并连接
systemctl start mongod
查看是否开启
systemctl status mongod
netstat -untlp
使用navicat12 或者studio3T 连接测试
至此 无密码版Mongodb数据库搭建完毕
------------------------------------------------------Mongodb 配置密码----------------------------------------------------------------------
(8)补:mongodb配置密码(超级用户,普通用户)
(1)进入mongo库
[root@alibyleilei /]# mongo
#或者
[root@alibyleilei /]# mongo --port 27017
(2)创建超级用户(可查看所有数据库信息)
进入mongo后切换到自带的admin数据库
use admin
创建超级用户语句
db.createUser(
{
user: "root",
pwd: "123456",
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
}
)
ctrl+c退出mongodb
(3)启用身份验证
修改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进行连接测试
(4)创建普通用户(只能操作查看对应的一个库信息)
exmple:我在数据库中有一个cx_sc数据库
创建cx_sc对应的普通用户 leilei: (此用户链接成功后仅可查看以及操作cx_sc数据库)
use cx_sc
db.createUser({user: "leilei", pwd: "123456", roles: [{role: "readWrite", db: "cx_sc" }]})
使用studio3t 进行链接测试
链接成功
java中使用
Springboot项目yml配置
spring:
data:
mongodb:
uri: mongodb://cx_sc库用户:cx_sc库用户密码@47.97.118.22:27017/cx_sc