Mongodb 安装好的配置及Authentication failed 和connect failed问题解决

在这里插入图片描述
在这里插入图片描述
刚刚安装mongodb,按照网上的教程安装,但是新建数据的时候,怎么连接都连接不了。百度的话,却很少有这部分说明,或者写的不清不楚的。
终于在 stackoverflow找到解决方法。果然谷歌还是爸爸!

## 这步开始刚刚安装好mongodb,没有进行什么操作
use admin
#创建管理员账户(不能创建数据库)
db.createUser({ user: "admin", pwd: "123456", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
# 创建超级管理员(可以创建数据库)
db.createUser({user:"root",pwd:"123456",roles:[{role: 'root', db: 'admin'}]})
# 退出
exit
# 登录admin 数据库
mongo admin
# root管理员登录
db.auth('root','123456');
# 创建test数据库
use test;
# 查看是否有test数据库,结果是没有的
show dbs 
# 需要往里面添加数据,test才会生成
db.createCollection("list")
# 查看是否有test数据库,结果是有的
show dbs
#退出
exit
# 重新mongo服务
# 进行mongo 初始化认证,这步是Authentication 
### 解决MongoDB连接认证失败问题 当遇到 `MongoDB authentication failed` 的问题时,通常是因为客户端无法通过身份验证成功访问数据库服务器。以下是可能的原因以及解决方案: #### 1. 用户名或密码错误 如果指定的用户名或密码不正确,则会触发认证失败。确保输入的身份凭证无误,并且该用户具有足够的权限来执行所需的操作。 对于本地实例中的命令行操作,可以尝试重新创建管理员账户并设置新密码: ```javascript use admin; db.createUser({ user: "admin", pwd: "new_secure_password", // 替换为强密码 roles: [{ role: "root", db: "admin" }] }); ``` 之后再次运行带有 `-u` `-p` 参数的工具时,请提供更新后的凭据[^1]。 #### 2. 数据库名称参数缺失或者错误 某些情况下,默认使用的数据库并不包含所请求登录用户的定义记录;因此,在调用像 `mongodump` 这样的实用程序时需显式声明目标数据库的名字(`--authenticationDatabase`)。 例如修改上述备份脚本如下所示形式即可解决问题之一: ```bash [root@MongoDB ~]# mongodump \ --host 127.0.0.1 \ --port 27017 \ -u admin \ -p 123456 \ --authenticationDatabase=admin \ # 添加此选项指向正确的auth DB -d db1 \ -o /root/ ``` 这里指定了管理账号所在的特定数据库作为认证源而非默认值[^2]。 #### 3. SSL/TLS 配置不当引发握手异常 如果集群启用了TLS加密通信而未配置相应证书文件路径也可能引起此类现象。检查是否需要启用SSL支持并通过适当方式加载CA根证书链及私钥材料给客户端应用程 序使用。 针对Debezium这类Kafka Connect插件集成场景下发生的SSL Handshake终止事件,可参照官方文档调整相关属性设定完成修复工作[^3]: ```properties connect.distributed.security.protocol=SSL connect.distributed.ssl.truststore.location=/path/to/truststore.jks connect.distributed.ssl.truststore.password=<truststore-password> ... ``` 综上所述,依据具体环境差异采取对应措施能够有效应对大多数因鉴权失败而导致的服务中断状况。 ```python import pymongo client = pymongo.MongoClient( "mongodb+srv://<username>:<password>@cluster0.kqodwan.mongodb.net/?retryWrites=true&w=majority", tls=True, tlsCertificateKeyFile='/path/to/client.pem', tlsCAFile='/path/to/ca_certificate.crt' ) try: client.admin.command('ping') print("Pinged your deployment. You successfully connected to MongoDB!") except Exception as e: print(e) ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值