MongoDB群集设置

时间:2017-03-12 06:24:01

标签: mongodb

我正在尝试设置一个3节点的MongoDB集群。

1)使用以下配置文件在所有3个节点中启动mongodb。

 net:
       bindIp: 0.0.0.0
       port: 10901
    setParameter:
       enableLocalhostAuthBypass: false
    systemLog:
       destination: file
       path: "<LOG_PATH>"
       logAppend: true

processManagement:
   fork: true
storage:
   dbPath: "<DB_PATH>/data"
   journal:
      enabled: true
security:
   keyFile : "<KEY_FILE_PATH>"
    sharding:
      clusterRole: "configsvr"
    replication:
      replSetName: "configReplSet"

2)在其中一个配置节点中创建了Admin用户,并且能够使用admin用户登录。

mongo --port 10901 -u "admin" -p "adminpwd" --authenticationDatabase "admin" --host <IP>

现在控制台说,用户:PRIMARY&gt;

3)使用以下命令创建副本集。

rs.initiate(
  {
    _id: "configReplSet",
    configsvr: true,
    members: [
      { _id : 0, host : "<IP1>:10901" },
      { _id : 1, host : "<IP2>:10901" },
      { _id : 2, host : "<IP3>:10901" }
    ]
  }
)

4)执行rs.status()并获得正确的输出。

5)在所有3个实例中使用以下配置启动Mongo分片。

net:
   bindIp: 0.0.0.0
   port: 10903
setParameter:
   enableLocalhostAuthBypass: false
systemLog:
   destination: file
   path: "<LOG_PATH>"
   logAppend: true
processManagement:
   fork: true
storage:
   dbPath: "<DB_PATH>/shard_data/"
   journal:
      enabled: true
security:
   keyFile : "<KEY_FILE>"
sharding:
  clusterRole: "shardsvr"
replication:
  replSetName: "shardReplSet"

6)也在其中一个分片节点中创建了Admin用户,并且能够使用admin用户登录。

mongo --port 10903 -u "admin" -p "adminpwd" --authenticationDatabase "admin" --host <IP>

7)使用以下命令创建分片副本集。

rs.initiate(
  {
    _id: "shardReplSet",
    members: [
      { _id : 0, host : "<IP1>:10903" },
      { _id : 1, host : "<IP2>:10903" },
      { _id : 2, host : "<IP3>:10903" }
    ]
  }
)

8)使用以下配置启动路由器

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: <LOG_PATH_FOR_MONGOS>

# network interfaces
net:
  port: 10902

security:
  keyFile: <KEY_FILE>

processManagement:
  fork: true

sharding:
  configDB: configReplSet/<IP1>:10901,<IP2>:10901,<IP3>:10901

6)使用mongo

连接到mongos
mongo --port 10902 -u "admin" -p "adminpwd" --authenticationDatabase "admin" --host <IP>

现在,我在命令中看到了以下内容。

MongoDB server version: 3.4.2
mongos> 

7)现在在mongos界面中添加了每个分片。

因为,我已经配置了副本集,

sh.addShard(&#34; shardReplSet /:10903,:10903,:10903&#34;)

问题: -

1)无法从远程计算机连接到mongodb

我能够连接到这3个节点中的另一个节点。

来自Node1,

mongo --port 10902 -u&#34; user&#34; -p&#34;密码&#34; --authenticationDatabase&#34; admin&#34; --host

mongo --port 10902 -u&#34; user&#34; -p&#34;密码&#34; --authenticationDatabase&#34; admin&#34; --host

mongo --port 10902 -u&#34; user&#34; -p&#34;密码&#34; --authenticationDatabase&#34; admin&#34; --host

以上3个连接都是从Node1和Node2以及Node3开始的。

但是如果我尝试从我的localhost连接到这些实例,我会收到超时错误。

我能够ssh到这些服务器。

2)我在端口10901上运行config,在端口10903上运行shard,在端口10902上运行路由器。在每个节点上运行,配置,分片和路由器。这可以吗?

配置和分片的DB路径不同。必须在每个服务(配置,分片,路由器)上创建管理员用户。这是对的吗?

为配置和分片服务器创建了副本集,但是没有为路由器创建?这可以吗?

4)无法从远程mongo厨师工具连接到这些实例。我用路由器端口连接这些实例?它是否正确?如果是这样,我是否需要在每个节点上运行路由器?

5)我们是否需要连接到端口10903或10902或10901以创建新数据库,为db创建新用户。?

6)此处还有其他重要内容吗?

由于

0 个答案:

没有答案