database - 无法将新副本添加到 SiriDB

标签 database time-series

我的设置

我在同一节点上启动了两个 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_addressbind_client_address 更改为 ::(任意)。

注意:可以使用环境变量 SIRIDB_BIND_SERVER_ADDRESSSIRIDB_BIND_CLIENT_ADDRESS 完成相同的设置。

关于database - 无法将新副本添加到 SiriDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71441381/

相关文章:

mysql - 除了使用主键-外键关系之外,如何链接 MySQL 数据库中的多个表?

java - 程序可以在我的电脑上运行,但不能在服务器上运行

sql - JOIN 和 UNION 有什么区别?

database - 如何找到时间序列数据的最新项目?

machine-learning - 神经网络中的时间序列超前预测(N Point Ahead Prediction)大规模迭代训练

python - 结合 Pandas 中的两个时间序列

sql-server - 由于 FK 限制,删除失败

python - 选定行的 Pandas 数据框聚合

r - 按整数进行时间序列子集化

database - F# 数据库编程是否与 C# 数据库编程相同?