一、操作步骤 1.停止数据库 2.更改配置文件,增加集群相关配置 security: keyFile: /data/mongodbData/keyFile authorization: enabled replication: oplogSizeMB: 1024 replSetName: set_test 3.生成密钥文件 openssl rand -base64 756 > keyFile chmod 400 keyFile 4.启动mongo数据库 5.集群初始化 rs.initiate() 6.启动副本集的另外两个节点的mongo 7.添加节点 rs.add("<hostname><:port>") 二、问题及解决 Q: 本地连接报错:pymongo.errors.ServerSelectionTimeoutError: No replica set members match selector “Primary()”, Timeout: 30s, Topology Description: <TopologyDescription id: 68ba5e11c392aa35a4ceacef, topology_type: ReplicaSetNoPrimary A: mongo是由单节点扩容成的副本集,副本集信息中主节点自动用了主机名,而主机名在本地无法解析,有两种办法,要么配置/etc/hosts,要么修改副本集的host,这里采用正规的修改副本集的host的方式 # 查看配置 rs.conf() # 发现host为主机名 "host" : "cos-mongodb:27017", # 重新修改host解决问题 cfg = rs.conf() cfg.members[0].host = "192.168.1.1:27017" rs.reconfig(cfg) # 这样改完后就全部变为ip了,可以正常链接