Mongo 数据库规范地址与服务器地址不匹配
Mongo DB Canonical address does not match server address
我正在将我的 spring 启动应用程序与 mongo 数据库连接。
代码在本地环境中运行良好,其中数据库只有一个节点,而不是 运行 在集群模式下。
但是当数据库 运行 在具有集群模式和单个节点和 1 个副本集的暂存环境中时,spring 应用程序显示以下错误:
INFO | | | 2019-04-18 12:43:25 | [cluster-ClusterId{value='5cb823951a734cea7f7eebe1', description='null'}-10.202.41.254:27017] com.mongodb.diagnostics.logging.SLF4JLogger - Canonical address educationelasticsearch-digital-v1-41-254:27017 does not match server address. Removing 10.20.41.254:27017 from client view of cluster
INFO | | | 2019-04-18 12:43:25 | [cluster-ClusterId{value='5cb823951a734cea7f7eebe1', description='null'}-educationelasticsearch-digital-v1-41-254:27017] com.mongodb.diagnostics.logging.SLF4JLogger - Exception in monitor thread while connecting to server educationelasticsearch-digital-v1-41-254:27017
com.mongodb.MongoSocketException: educationelasticsearch-digital-v1-41-254: nodename nor servname provided, or not known
at com.mongodb.ServerAddress.getSocketAddress(ServerAddress.java:188) ~[mongodb-driver-core-3.8.2.jar:?]
at com.mongodb.internal.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:64) ~[mongodb-driver-core-3.8.2.jar:?]
at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:62) ~[mongodb-driver-core-3.8.2.jar:?]
at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:126) ~[mongodb-driver-core-3.8.2.jar:?]
at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) [mongodb-driver-core-3.8.2.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_171]
Caused by: java.net.UnknownHostException: educationelasticsearch-digital-v1-41-254: nodename nor servname provided, or not known
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) ~[?:1.8.0_171]
at java.net.InetAddress.lookupAllHostAddr(InetAddress.java:928) ~[?:1.8.0_171]
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323) ~[?:1.8.0_171]
at java.net.InetAddress.getAllByName0(InetAddress.java:1276) ~[?:1.8.0_171]
at java.net.InetAddress.getAllByName(InetAddress.java:1192) ~[?:1.8.0_171]
at java.net.InetAddress.getAllByName(InetAddress.java:1126) ~[?:1.8.0_171]
at java.net.InetAddress.getByName(InetAddress.java:1076) ~[?:1.8.0_171]
at com.mongodb.ServerAddress.getSocketAddress(ServerAddress.java:186) ~[mongodb-driver-core-3.8.2.jar:?]
... 5 more
在这两种情况下,应用程序属性是相同的,只是临时服务器的 IP 更改为本地主机:
spring.elasticsearch.education.hostname=localhost // staging server IP
spring.elasticsearch.education.scheme=http
spring.elasticsearch.education.port=9200
###### Mongo properties ########
spring.data.mongodb.host=localhost //staging server ip
spring.data.mongodb.port=27017
spring.data.mongodb.database=ddddd
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.username=root
spring.data.mongodb.password=root
spring.data.mongodb.repositories.enabled=true
logging.level.org.springframework.data.mongodb.core.MongoTemplate=DEBUG
我检查了,但没有太多解决办法。
请指出这里有什么问题?
看这里。
可能 spring.data.mongodb.host 和 spring.data.mongodb.port 在此版本的 mongodb 驱动程序中不受支持。
你可以试试:
spring.data.mongodb.uri=mongodb://root:root@localhost:27017
相反。
我正在将我的 spring 启动应用程序与 mongo 数据库连接。
代码在本地环境中运行良好,其中数据库只有一个节点,而不是 运行 在集群模式下。
但是当数据库 运行 在具有集群模式和单个节点和 1 个副本集的暂存环境中时,spring 应用程序显示以下错误:
INFO | | | 2019-04-18 12:43:25 | [cluster-ClusterId{value='5cb823951a734cea7f7eebe1', description='null'}-10.202.41.254:27017] com.mongodb.diagnostics.logging.SLF4JLogger - Canonical address educationelasticsearch-digital-v1-41-254:27017 does not match server address. Removing 10.20.41.254:27017 from client view of cluster
INFO | | | 2019-04-18 12:43:25 | [cluster-ClusterId{value='5cb823951a734cea7f7eebe1', description='null'}-educationelasticsearch-digital-v1-41-254:27017] com.mongodb.diagnostics.logging.SLF4JLogger - Exception in monitor thread while connecting to server educationelasticsearch-digital-v1-41-254:27017
com.mongodb.MongoSocketException: educationelasticsearch-digital-v1-41-254: nodename nor servname provided, or not known
at com.mongodb.ServerAddress.getSocketAddress(ServerAddress.java:188) ~[mongodb-driver-core-3.8.2.jar:?]
at com.mongodb.internal.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:64) ~[mongodb-driver-core-3.8.2.jar:?]
at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:62) ~[mongodb-driver-core-3.8.2.jar:?]
at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:126) ~[mongodb-driver-core-3.8.2.jar:?]
at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) [mongodb-driver-core-3.8.2.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_171]
Caused by: java.net.UnknownHostException: educationelasticsearch-digital-v1-41-254: nodename nor servname provided, or not known
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) ~[?:1.8.0_171]
at java.net.InetAddress.lookupAllHostAddr(InetAddress.java:928) ~[?:1.8.0_171]
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323) ~[?:1.8.0_171]
at java.net.InetAddress.getAllByName0(InetAddress.java:1276) ~[?:1.8.0_171]
at java.net.InetAddress.getAllByName(InetAddress.java:1192) ~[?:1.8.0_171]
at java.net.InetAddress.getAllByName(InetAddress.java:1126) ~[?:1.8.0_171]
at java.net.InetAddress.getByName(InetAddress.java:1076) ~[?:1.8.0_171]
at com.mongodb.ServerAddress.getSocketAddress(ServerAddress.java:186) ~[mongodb-driver-core-3.8.2.jar:?]
... 5 more
在这两种情况下,应用程序属性是相同的,只是临时服务器的 IP 更改为本地主机:
spring.elasticsearch.education.hostname=localhost // staging server IP
spring.elasticsearch.education.scheme=http
spring.elasticsearch.education.port=9200
###### Mongo properties ########
spring.data.mongodb.host=localhost //staging server ip
spring.data.mongodb.port=27017
spring.data.mongodb.database=ddddd
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.username=root
spring.data.mongodb.password=root
spring.data.mongodb.repositories.enabled=true
logging.level.org.springframework.data.mongodb.core.MongoTemplate=DEBUG
我检查了
请指出这里有什么问题?
看这里。
可能 spring.data.mongodb.host 和 spring.data.mongodb.port 在此版本的 mongodb 驱动程序中不受支持。
你可以试试:
spring.data.mongodb.uri=mongodb://root:root@localhost:27017
相反。