我的设置
我在同一节点上启动了两个 SiriDB 服务器,但使用不同的端口:
第一台服务器:
- 服务器名称:%HOSTNAME:9010
- listen_client_port:9000
- http_api_端口:9020
第二个服务器:
- 服务器名称:%HOSTNAME:9011
- listen_client_port:9001
- http_api_端口:9021
情况
我使用以下curl命令创建了一个新副本:
curl --location --request POST 'http://localhost:9021/new-replica' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic c2E6c2lyaQ==' \
--header 'Content-Type: text/plain' \
--data-raw '{
"dbname": "dbtest",
"username": "iris",
"password": "siri",
"host": "localhost",
"port": 9000,
"pool": 0
}'
上述命令的响应是OK
。
但是在服务器日志记录中我看到以下错误消息:
Connecting to back-end server 'my-hostname-xxx:9010' failed (error: connection refused)
执行列表服务器
查询时,服务器似乎无法找到彼此:
curl --location --request POST 'http://localhost:9021/query/dbtest' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic aXJpczpzaXJp' \
--header 'Content-Type: text/plain' \
--data-raw '{"q": "list servers"}'
这是回复:
{"columns":["status"],"servers":[["offline"],["running | synchronizing"]]}
我找不到问题所在,因为服务器在同一主机上运行。所以,他们应该能够找到对方吧?
最佳答案
很可能您的绑定(bind)不正确。您能检查一下是否是这种情况吗?
出于安全原因,默认情况下 SiriDB 仅绑定(bind)到 127.0.0.1
(localhost)。
由于使用了 %HOSTNAME
,因此 SiriDB 可能正在另一个接口(interface)上监听。
如果您使用配置文件,则可能需要将 bind_server_address
和 bind_client_address
更改为 ::
(任意)。
注意:可以使用环境变量 SIRIDB_BIND_SERVER_ADDRESS
和 SIRIDB_BIND_CLIENT_ADDRESS
完成相同的设置。
关于database - 无法将新副本添加到 SiriDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71441381/