10107 NotWritablePrimary: not master / not writable primary(不是 master / 不是可写的主节点)
MongoDB含义
写入(或其他需要主节点的操作)被发送到了当前不是主节点的副本集成员。只有主节点接受写入,因此操作被拒绝。
原因
应用正在向从节点写入;在故障转移(选举)期间旧主节点变为从节点,而客户端仍连接着它;或驱动的读写偏好和拓扑信息已过期。连接字符串中缺少 replicaSet 参数是典型原因。
解决方法
为驱动配置所有副本集成员和副本集名称(在连接字符串中写明 replicaSet=... 和所有主机),使驱动能自动发现主节点并在故障转移时重新路由。使用默认的读写偏好,它会将写入路由到主节点。由于这是暂时性错误,在应用中启用可重试写入。用 rs.status() 确认哪个成员是 PRIMARY。
同一数据库的其他条目
- 67 CannotCreateIndexCannot create index(无法创建索引)
- 27 IndexNotFoundIndex not found(未找到索引)
- 79 UnknownReplWriteConcernUnknown replica set write concern(未知的副本集写关注)
- 91 ShutdownInProgressThe server is in the process of shutting down(服务器正在关闭)
- 189 PrimarySteppedDownPrimary stepped down while operation was in progress(操作进行期间主节点已降级)
- 24 LockTimeoutOperation exceeded time limit waiting for a lock(操作等待锁时超出时间限制)
- 7 HostNotFoundCould not find host(找不到主机)