mongodb
安装
参考 mongo官网
- 配置yum源
vim /etc/yum.repos.d/mongodb-org-3.6.repo
写入下面
# [mongodb-enterprise]
[mongodb-org-3.6]
name=MongoDB Enterprise Repository
baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/3.6/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
- 通过yum安装
sudo yum install -y mongodb-org
- 启动mongo
systemctl start mongod.service
- 查看版本
mongo
- 设置开机自启动
systemctl enable mongod.service
- 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
创建管理用户
mongodb安装好后第一次进入是不需要密码的,也没有任何用户
- 连接,并创建
$ mongo
> use admin
> db.createUser({user: 'root', pwd:'pwd', roles: [{role: 'root', db: 'admin'}]})
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
权限:
-
read
:允许用户读取指定数据库 -
readWrite
:允许用户读写指定数据库 -
dbAdmin
:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile -
userAdmin
:允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户 -
clusterAdmin
:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 -
readAnyDatabase
:只在admin数据库中可用,赋予用户所有数据库的读权限 -
readWriteAnyDatabase
:只在admin数据库中可用,赋予用户所有数据库的读写权限 -
userAdminAnyDatabase
:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 -
dbAdminAnyDatabase
:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。 -
root
:只在admin数据库中可用。超级账号,超级权限
- 使用
$ mongo -u root -p pwd
> use admin
> show users
{
"_id" : "admin.root",
"userId" : UUID("0d11a990-f187-4fff-9c9d-169eba9a5da2"),
"user" : "root",
"db" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
配置远程访问
- 修改配置文件
vim /etc/mongod.conf
# bindIp: 127.0.0.1 那一行可以注释掉,也可以修改为如下所示:
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0 # Listen to local interface only, comment to listen on all interfaces.
# 远程连接数据库验证,旧版本为auth = true
security:
authorization: enabled #注意缩进,参照其他的值来改,若是缩进不对可能导致后面服务不能重启
重启
systemctl restart mongod.service
- 查看数据库版本
~ mongo
MongoDB shell version v3.6.5
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.5
> use admin
switched to db admin
> db.system.version.find()
{ "_id" : "featureCompatibilityVersion", "version" : "3.6" }
{ "_id" : "authSchema", "currentVersion" : 5 }
# 发现版本不一致
> db.system.version.update({"_id":"authSchema"},{$set:{"currentVersion":3}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.system.version.find()
{ "_id" : "featureCompatibilityVersion", "version" : "3.6" }
{ "_id" : "authSchema", "currentVersion" : 3 }
# 一致了
- 添加用户
> use admin
> db.createUser({user:"test",pwd:"123456",roles:[{"role":"userAdminAnyDatabase","db":"admin"},{"role":"readWrite","db":"test"},'readWrite']})
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
},
{
"role" : "readWrite",
"db" : "test"
}
]
}
> db.auth('test', '123456')
# 创建用户或者修改后需要认证下,成功返回1,失败返回0
- 重启mongo 并开放27017端口
systemctl restart mongod.service
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
- 远程可视化工具
- db设置为admin
- userName: 你设置的用户名
- password: 你设置的密码
- 连接的地址: 你的服务器ip:27017
网友评论