postgresql - Azure VM 和 Postgresql ChainlinkNode : unable to lock ORM

标签 postgresql azure chainlink

总而言之,我正在尝试通过 Docker 在 Azure VM 上运行 Chainlink 节点。我还创建了一个 Azure Postgresql DB 并验证了 VM 是否能够通过 psql cli 连接。

我为使节点运行而采取的步骤(遵循this link):

  1. 创建 Azure 虚拟机

  2. 安装docker

  3. mkdir ~/.chainlink-rinkeby

  4. 已创建 .env 文件

  5. 通过外部提供商设置 ETH_URL

  6. 按照 this link 创建 Postgres SQL 数据库

  7. 使用 sslmode=disable 设置远程 Database_Url 配置

  8. 启动节点:

    cd ~/.chainlink-rinkeby && docker run -p 6688:6688 -v ~/.chainlink-rinkeby:/chainlink -it --env-file=.env smartcontract/chainlink local n

我的 .env 文件:

"ROOT=/chainlink LOG_LEVEL=debug ETH_CHAIN_ID=4 MIN_OUTGOING_CONFIRMATIONS=2 LINK_CONTRACT_ADDRESS=0x01BE23585060835E02B77ef475b0Cc51aA1e0709 CHAINLINK_TLS_PORT=0 SECURE_COOKIES=false GAS_UPDATER_ENABLED=true ALLOW_ORIGINS=*"
"ETH_URL=wss://cl-rinkeby.fiews.io/v1/MY_API_KEY"
"DATABASE_URL=postgresql://MY_USER_NAME:MY_PASSWORD@MY_DATABASE_nAME.postgres.database.azure.com:5432/postgres?sslmode=disable"

错误:

[ERROR] unable to lock ORM: dial tcp 127.0.0.1:5432: connect: connection refused logger/default.go:139   stacktrace=github.com/smartcontractkit/chainlink/core/logger.Error

我还尝试在 chainlink 启动命令中给出 0.10.8 的版本,但我得到的错误是:

 [ERROR] failed to initialize database, got error failed to connect to `host=/tmp user=root database=`: dial error

最佳答案

您正在尝试将 Chainlink 节点连接到远程 PostgreSQL 数据库。该数据库由 AZUR 的云服务管理,并在内部进行托管和管理。连接的问题是 Chainlink 节点想要建立到 127.0.0.1 的连接。因此确信 Postgres 位于您的 Chainlink docker 容器本地。 docker容器是一个自己的环境,代表一个自己的主机,所以127.0.0.1将环回容器本身。我建议你看一下docker的官方网络文档:https://docs.docker.com/config/containers/container-networking/

版本号0.10.8您建立了连接。这里的问题现在与用户和数据库有关。请确保您为其创建一个数据库和一个自己的用户,并且不要像 super 用户一样使用管理员凭据(root)。

您可以通过azur cli进入postgres并输入以下行:

CREATE DATABASE <yourdbname>;

CREATE USER <youruser> WITH ENCRYPTED PASSWORD '<yourpass>';

此外,您可以查看这篇与 postgres 数据库连接相关的文章: https://stackoverflow.com/a/67992586/15859805

关于postgresql - Azure VM 和 Postgresql ChainlinkNode : unable to lock ORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68227697/

相关文章:

postgresql - 在 phoenix 中获取更新数据库(在 postgres 中)通知

Azure 门户不允许我创建 Azure 事件网格主题的订阅。创建按钮变灰

azure - windows azure 表存储,如何启用保持事件状态

sql - 将额外参数传递给 PostgreSQL 聚合最终函数

SQL Regex 选择第二个和第三个正斜杠之间的字符串

c# - 如何以编程方式启用/禁用 Azure Function

solidity - Chainlink 节点 -encode_tx 错误长度不正确

random - 通过Chainlink VRF v2.获取随机数,但是一直pending,已经pending两天了

chainlink - 创建应用程序 : failed to initialize ORM

sql - 使用 postgreSQL 按表填充分组