nano /etc/mongod.conf
找到security部分,确保以下行未被注释:
security:
authorization: enabled
再修改bindIp 为 0.0.0.0
最终配置如下图
然后再重启一下数据库
最后本地数据库连接软件去连接一下试试就可以了
注意:开启数据库远程连接一定要设置账号密码不然会被攻击的,博主就遇到这种问题数据库被黑了
如果这个过程有问题给我发私信
$m = new Mongo();
//这里采用默认连接本机的27017端口,当然也可以连接远程主机如 192.168.0.4:27017,如果端口是27017,端口可以省略。
$m = new Mongo(mongodb://${username}:${password}@localhost);
$m = new Mongo(mongodb://127.0.0.1:27017/admin:admin);
数据库的用户名和密码都是admin
数据库操作
//这里采用默认连接本机的27017端口,当然你
复制代码 代码如下://连接localhost:27017$conn = new Mongo();
//连接远程主机默认端口$conn = new Mongo(‘test.com’);
//连接远程主机22011端口$conn = new Mongo(‘test.com:22011’);
//MongoDB有用户名密码$conn = new Mongo(“mongodb://${username}:${password}@localhost”)
//MongoDB有用户名密码并指定数据库blog$conn = new Mongo(“mongodb://${username}:${passwor
MongoDB 是一种 NoSQL 数据库,其灵活的数据模型和无模式的特性,更加适用于频繁更改表字段的场景。在 MongoDB 中,数据以文档的形式存储,每个文档可以有不同的字段和结构,可以轻松地适应数据结构的变化MongoDB Compass 是 MongoDB 官方提供的一款图形化数据库管理工具。
1. 前言
一直以为连接池是对JDBC的封装,今天再次回顾Java基础的时,才发现并非完全如此。连接池只是包装/操作了JDBC API 接口,然后再实际运行的时候,这些接口的具体实现则
下面是知乎上的一个图:JDBC和连接池的关系
2. JDBC和连接池的关系
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。简单说可以通过JDBC来访问数据库,
readAnyDatabase(在所有数据库上都有读取数据的权限)、readWriteAnyDatabase(在所有数据库上都有读写数据的权限)、userAdminAnyDatabase(在所有数据库上都有管理user的权限)、dbAdminAnyDatabase(管理所有数据库的权限);:clusterAdmin(管理机器的最高权限)、clusterManager(管理和监控集群的权限)、clusterMonitor(监控集群的权限)、hostManager( 管理Server);
安装可以看我这篇文章:https://tongyao.blog.csdn.net/article/details/123937775
由于默认安装的MongoDB是没有设置用户密码的,极其危险,所以需要设置一下用户密码
3、创建用户
用Navicat15连接MongoDB,正常连接没有问题。
use admin
使用admin数据库
输入创建用户命令,返回1说明成功
db.createUser({user:"admin",pwd:"123456",roles:["root"
可以看到我们刚才连接服务器的mongodb时, 并没有输入用户名和密码, 只需要知道你的公网ip就可以连接了, 因为mongodb数据库一般端口都是27017, 别人只需要知道你的ip就相当于拥有了所有的mongodb的权限, 所以我们就需要为mongodb设置一个用户名和密码, 开启登录验证。authSource=admin : 验证数据库, 指定从那个数据库中验证用户, 因为我们是在admin表创建的所以要=admin。你的服务器ip: 就是你的服务器ip。你的数据库: 就是你要连接的数据库。
平时在线下环境使用PyMongo连接MongoDB数据库时都是连接的没有用户名和密码的数据库,那么对于有用户名和密码的MongoDB数据库(线上环境)又该怎么连接呢?
import pymongo
client = pymongo.MongoClient(host='host', port=27017)
# # info_data 需要用户名和密码进行身份认证的数据库
db = client.info_data
# username:用户名;password:密码
db.authent
mongo创建超级管理员
#管理整个mongo数据库。
db.createUser({ user: "user",pwd: "pwd",roles: [ { role: "root", db: "admin" } ]})
具体角色解释:
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.u.
启动命令:
带权限验证:
mongod --dbpath /home/mongoDB/data --logpath /home/mongoDB/log/log --logappend --auth --port 27017 --fork
不带权限验证:
mongod --dbpath /home/mongoDB/data --logpath /home/mongoDB/log/log --logappend --port 27017 --fork
关闭命令: