繁体   English   中英

更改 MongoDB 服务器的名称

[英]Change Name of MongoDB Server

在 MongoDB 中,如何更改服务器/守护程序的名称,或使用localhost以外的名称创建新服务器? 文档指定了一种连接到具有特定名称的服务器的方法,例如localhostmongo命令上的--host选项),以及一种指定复制集中每个服务器名称的方法,我忘记了目前,但不是说出服务器名称以创建mongod命令实例的方法。 它似乎必须是localhost

我有node.jsapache ,所以我可以使用虚拟主机,而且我显然有一个hosts文件(类 Unix 操作系统上的/etc/hosts和 Windows 上的C:\\WINDOWS\\System32\\drivers\\etc\\hosts ),所以我大概可以创建一个名称与localhost不同的服务器,但问题是我可以使用内置命令(如mongod )或配置文件来做到这一点?

与 HTTP 协议(​​由在 Apache 等 Web 服务器中运行的 Web 应用程序使用)不同, MongoDB 有线协议在确定如何处理传入请求时不使用主机名。 这意味着您的 MongoDB 服务器没有主机名或 virtualhost 指令的等效项。

MongoDB 服务器配置文件允许您绑定到一个或多个 IP 地址 绑定 IP 配置选项指定服务器侦听传入连接的 IP 地址。 例如,这可能是: 127.0.0.1 (又名localhost )、以逗号分隔的 IP 地址列表或所有网络接口(如果您未指定绑定 IP 限制)。

当您连接到 MongoDB 并在您的命令行或驱动程序选项中指定一个主机名时,这个名称只需要从外部的角度是可解析的。 您可以使用要在 MongoDB 之外创建的任何形式的可解析主机名(例如,在您的/etc/hosts文件或 DNS 中)。 只要 MongoDB 服务器正在侦听您的主机名解析到的 IP(并且没有防火墙或网络连接问题),无论使用什么主机名,您都应该能够连接。

例如,虽然localhost是可用于环回 IP 地址 (127.0.0.1) 的默认名称,但应始终定义 .. 通常,您的计算机也会定义一个唯一的主机名。 您可以使用getHostName()mongo shell 中检查默认主机名解析为的内容:

> getHostName()
Webscale.local

假设没有绑定 IP 限制且主机Webscale.local且 IP 地址为192.168.1.1 ,您将能够连接到以下任何一个:

  • Webscale.local
  • 192.168.1.1
  • 本地主机
  • 127.0.0.1

利用 Docker 环境,创建两个容器,一个用于您的 Mongo 服务器,另一个用于您的应用程序,在一个 docker-compose.yml 文件中运行这两个容器,指定您的应用程序容器将依赖于您的 mongo 容器,然后替换“localhost”应用程序中带有 mongo 容器名称的连接字符串。 参考以下两个片段:

docker-compose.yml

version: '3'
 services:
   img_flaskapp:
      build: ./Flask/gie
      container_name: flaskapp
      ports:
        - "8000:8000"
      depends_on: 
        - img_mongodb
   img_mongodb:
      image: mongo
      container_name: mongodb
      ports:
       - "27017:27017"

应用程序代码

connect (host="mongodb://mongodb:27017/nameofyourdb")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM