创建应用程序:无法初始化 ORM

2024-05-04

当我启动节点时,我总是收到此错误。请回复我我哪里出错了。

错误:创建应用程序:无法初始化 ORM:initializeORM#NewORM:无法初始化 DB:无法打开 ?application_name=Chainlink+0.10.7+%7C+ORM+%7C+98d78e80-6fa0-4e2f-a9a4-c51199bf9d2a for gorm DB conn &{0 0xc0004a93e0 0 {0 0} [] map[] 0 0 0xc0005e29c0 false map[] map[] 0 0 0 0 0 0 0 0 0x59b0a0}:无法连接到主机=/var/run/postgresql user=根数据库=:服务器错误(致命:无法识别的配置参数“?application_name”(SQLSTATE 42704))

config :

LOG_LEVEL=debug
ETH_CHAIN_ID=42
MIN_OUTGOING_CONFIRMATIONS=2
LINK_CONTRACT_ADDRESS=0xa36085F69e2889c224210F603D836748e7dC0088
CHAINLINK_TLS_PORT=0
SECURE_COOKIES=false
FEATURE_EXTERNAL_INITIATORS=true
ALLOW_ORIGINS=*
ETH_URL=wss://kovan.infura.io/ws/v3/8e32345678ghjk456789cvbn4yu
DATABASE_URL=postgresql://localhost:5432/kovan_demo?sslmode=disable
DATABASE_TIMEOUT=0
FEATURE_FLUX_MONITOR=true
MINIMUM_CONTRACT_PAYMENT=100000000000000000
CHAINLINK_DEV=true

问题在于您的配置变量的语法DATABASE_URL

要连接到数据库,您需要专门创建USER with a PASSWORD,然后通过启动 chainlink 节点来锁定该数据库。默认postgresuser 将无法工作,因为它用于管理目的。 然后使用以下语法将这些凭据添加到环境变量中:DATABASE_URL=postgresql://$USERNAME:$PASSWORD@$SERVER:5432/$DATABASE

因为你已经设置了“localhost”postgresql server IP在您的环境中,我假设您的 postgres 与 Chainlink 节点在同一主机上运行。有 2 种不同的方式建立连接:

1)您在 docker 容器内同时拥有 Chainlink 节点和 postgresql 服务器:

您需要指向container ID or the container name你的 postgresql 服务器并在同一网络中创建两个容器。这里可以找到docker的官方文档:https://docs.docker.com/network/bridge/ https://docs.docker.com/network/bridge/

这意味着您必须通过以下方式创建网络来桥接容器以便能够相互通信:docker network create $NAME

然后将网络标志添加到 Chainlink 节点容器和 postgres-server 容器的运行命令:--network $NAME

重新初始化所有这些容器后,您可以指向容器名称而不是IP。你的语法DATABASE_URL在你的环境中现在看起来像这样:DATABASE_URL=postgresql://$USERNAME:$PASSWORD@$CONTAINER_NAME:$5432/$DATABASE

您还可以使用以下命令将正在运行的 docker 容器连接到网络/用户定义的网桥,而不是重新初始化容器: docker network connect $NETWORK_NAME $CONTAINER_NAME

2) postgresql 服务器作为主机上的应用程序和 docker 容器内的 chainlink 节点:

要实现这一点,您需要配置 chainlink 节点和数据库以允许通信。

PostgreSQL服务器:您需要更改配置文件以允许特定 Ip 范围的通信(默认情况下,postgres Ip 范围仅设置为localhost)。通常您可以在以下位置找到配置文件/etc/postgresql/<version>/main目录。

  1. 编辑 postgresql.conf 为listen_addresses = '*'
  2. 编辑 pg_hba.conf 为host all all 172.17.0.1/16 md5该地址范围属于 Docker,包括为您的 chainlink 容器分配的 IP。

Chainlink节点: 你需要添加--add-host=host:127.0.0.1添加到您的运行命令以启用与主机上的数据库和服务的连接。

另请确保您通过添加禁用 ssl 进行测试?ssl=disbable给你的ETH_URL配置,因为如果您的服务器上未配置 SSL,Chainlink 节点将返回 [ERROR] 日志(您可以稍后在服务器上配置 SSL,因为这是您自己的主题,您必须在官方文档中阅读)

在生产中强烈建议使用 SSL(当“仅”在内部加密您的流量时),因为它只是保护您所有的数据库通信并确保该数据库内的信息安全。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建应用程序:无法初始化 ORM 的相关文章

随机推荐