当前位置: 首页 > news >正文

docker安装MongoDB数据库,并且进行密码配置

在这里插入图片描述

很美的一首小诗==>
我在外面流浪,回来时
故乡瘦了一圈——
墩子叔走了,门前的池水
干了一半。
屋后驼背的柳树
头发散落了一地,
老房子蹲在坟边,屋顶的白云
仍在风中奔跑。

安装配置

要在Docker中安装MongoDB并启用远程连接,可以按照以下步骤进行:

  1. 创建Docker容器:

    使用以下命令在Docker中创建MongoDB容器:

    docker run -d \--name mongodb-container \-e MONGO_INITDB_ROOT_USERNAME=root \-e MONGO_INITDB_ROOT_PASSWORD=root \-e MONGO_INITDB_DATABASE=ChatLogHistory \-p 27017:27017 \mongo
    

    这将创建一个名为 mongodb-container 的MongoDB容器,设置用户名、密码、数据库,并映射主机端口27017到容器内的MongoDB端口。

  2. 允许远程连接:

    MongoDB默认情况下只允许本地连接。为了允许远程连接,需要编辑MongoDB的配置文件。

    进入MongoDB容器:

    docker exec -it mongodb-container bash
    

    在容器内,编辑MongoDB配置文件:

    nano /etc/mongod.conf
    

    找到并更改以下行:

    bindIp: 127.0.0.1
    

    修改为:

    bindIp: 0.0.0.0
    

    保存并退出。

  3. 重启MongoDB容器:

    docker restart mongodb-container
    

现在,你的MongoDB容器应该已经配置为允许远程连接。你可以使用MongoDB客户端或其他工具连接到该数据库,连接字符串将是:

mongodb://root:root@<你的主机IP>:27017/ChatLogHistory

确保替换 <你的主机IP> 为实际运行Docker容器的主机的IP地址。如果你是在本地机器上运行Docker,你可以使用 localhost127.0.0.1

问题解决

问题一

root@287772de5e44:/# nano /etc/mongod.conf
bash: nano: command not found

在Docker容器中可能没有安装 nano 文本编辑器。你可以尝试使用其他可用的编辑器,比如 vivim

vi /etc/mongod.conf

或者使用 echo 命令将所需的配置追加到文件中:

echo "bindIp: 0.0.0.0" >> /etc/mongod.conf

上述命令会在 mongod.conf 文件末尾添加 bindIp: 0.0.0.0。之后,你可以继续重启MongoDB容器,使更改生效:

docker restart mongodb-container

如果你更熟悉使用 vivim,可以使用这两个编辑器进行修改。例如:

vi /etc/mongod.conf

然后按 i 进入插入模式,编辑文件,编辑完成后按 Esc 键,输入 :wq 并按回车键保存退出。

问题二

客户端连接报错 Cannot connect to MongoDBAuthentication failed.

如果你无法连接到MongoDB,并且出现 “Authentication failed” 错误,有几个可能的原因需要检查:

  1. 用户名和密码是否正确: 确保你使用的用户名和密码是正确的。检查连接字符串中的用户名和密码,确保没有拼写错误。

  2. 数据库是否正确: 确保连接字符串中指定的数据库与你在MongoDB容器中创建的数据库相匹配。

  3. 远程连接配置是否生效: 你需要确保在MongoDB容器内部修改了 mongod.conf 文件,并且将 bindIp 设置为 0.0.0.0,以允许远程连接。然后,重启MongoDB容器。

  4. 防火墙和网络问题: 确保主机防火墙允许连接MongoDB端口(默认是27017)。如果你是在云服务提供商上运行,确保安全组或防火墙规则允许流量通过。

  5. Docker端口映射是否正确: 如果你使用Docker容器运行MongoDB,并且使用了端口映射(例如 -p 27017:27017),确保你连接的是正确的主机端口。

  6. 重新验证连接字符串: 确保在连接字符串中使用的格式正确,包括用户名、密码、主机和端口。

如果上述步骤都正确,但问题仍然存在,你可能需要检查MongoDB的日志以获取更多详细信息。在MongoDB容器内,你可以查看 /var/log/mongodb/mongod.log 文件。

http://www.lryc.cn/news/230981.html

相关文章:

  • ssh脚本找不到命令或者执行无效的解决办法
  • 2023年11月18日(星期六)骑行海囗林场公园
  • xss 漏洞
  • 一文图解爬虫_姊妹篇(spider)
  • 【vue实战项目】通用管理系统:api封装、404页
  • R语言编写代码示例
  • [RK3568][Android12.0]--- 系统自带预置第三方APK方法
  • 数据分析场景下,企业如何做好大模型选型和落地?
  • 使用VScode编译betaflight固件--基于windows平台
  • OkHttp网络请求读写超时
  • @postmapping 定义formdata传参方式
  • Windows客户端开发框架WPF简介
  • 2023NOIP A层联测32 sakuya
  • 竞赛选题 深度学习的视频多目标跟踪实现
  • 金蝶云星空表单插件获取控件值
  • docker自启与容器自启
  • 一、认识微服务
  • Windows server 2012 R2系统服务器远程桌面服务激活服务器RD授权分享
  • Vue的计算属性:让你的代码更简洁高效
  • mysql主从复制-使用心得
  • 今年副业比主业赚得多...
  • debian12安装fail2ban
  • openpnp - 74路西门子飞达控制板(主控板STM32_NUCLEO-144) - 验证
  • 从房地产先后跨界通信、文旅演艺领域,万通发展未来路在何方?
  • LLM 中的参数单位
  • 【探索Linux】—— 强大的命令行工具 P.15(进程间通信 —— system V共享内存)
  • MCU通过KT6368A用SPP透传发送1K左右的数据,手机APP显示是3个包或者4个包,但是我看手册说最大一个包是512,理论应该是两个包吧,请问这正常吗?
  • 童装CPC认证检测哪些内容?童装上架亚马逊美国站CPC认证办理
  • 2023鸿蒙预定未来,环境搭建学习
  • 技术架构 - 应用数据分离,应用服务集群架构