Azure VM 和 Postgresql ChainlinkNode:无法锁定 ORM
Azure VM and Postgresql ChainlinkNode: unable to lock ORM
总而言之,我正在尝试通过 Azure VM 上的 Docker 运行 Chainlink 节点。我还创建了一个 Azure Postgresql 数据库并验证了 VM 能够通过 psql cli 连接。
我获取节点 运行ning 的步骤(在 this link 之后):
创建 Azure VM
安装docker
mkdir ~/.chainlink-rinkeby
已创建 .env 文件
通过外部供应商设置ETH_URL
- 之后创建 Postgres SQL 数据库
使用 sslmode=disable
设置远程 Database_Url 配置
启动节点:
cd ~/.chainlink-rinkeby && docker 运行 -p 6688:6688 -v ~/.chainlink-rinkeby:/chainlink -it --env-file=.环境 smartcontract/chainlink 本地 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
建立了连接。这里的问题现在与用户和数据库有关。请确保您为它创建了一个数据库和一个自己的用户,并且不要像超级用户那样使用管理员凭据(root)。
您可以通过 azur cli
输入 postgres 并输入以下行:
CREATE DATABASE <yourdbname>;
CREATE USER <youruser> WITH ENCRYPTED PASSWORD '<yourpass>';
此外,您还可以查看与 postgres 数据库连接相关的 post:
总而言之,我正在尝试通过 Azure VM 上的 Docker 运行 Chainlink 节点。我还创建了一个 Azure Postgresql 数据库并验证了 VM 能够通过 psql cli 连接。
我获取节点 运行ning 的步骤(在 this link 之后):
创建 Azure VM
安装docker
mkdir ~/.chainlink-rinkeby
已创建 .env 文件
通过外部供应商设置ETH_URL
- 之后创建 Postgres SQL 数据库
使用 sslmode=disable
设置远程 Database_Url 配置启动节点:
cd ~/.chainlink-rinkeby && docker 运行 -p 6688:6688 -v ~/.chainlink-rinkeby:/chainlink -it --env-file=.环境 smartcontract/chainlink 本地 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
建立了连接。这里的问题现在与用户和数据库有关。请确保您为它创建了一个数据库和一个自己的用户,并且不要像超级用户那样使用管理员凭据(root)。
您可以通过 azur cli
输入 postgres 并输入以下行:
CREATE DATABASE <yourdbname>;
CREATE USER <youruser> WITH ENCRYPTED PASSWORD '<yourpass>';
此外,您还可以查看与 postgres 数据库连接相关的 post: