Wiki.js 未运行数据库连接错误

问题描述

Windows Enterprise 2016 LTSB 版本 1607。安装了 Wiki.js 和 Postgresql。之前安装过 Node.js (v12.16.2)。

使用 Powershell 进入 wiki.js 安装过程的step 8

node server

我收到此错误

PS C:\wiki> node server
Loading configuration from C:\wiki\config.yml... OK
2021-01-03T23:06:14.299Z [MASTER] info: =======================================
2021-01-03T23:06:14.300Z [MASTER] info: = Wiki.js 2.5.170 =====================
2021-01-03T23:06:14.301Z [MASTER] info: =======================================
2021-01-03T23:06:14.301Z [MASTER] info: Initializing...
2021-01-03T23:06:14.688Z [MASTER] info: Using database driver pg for postgres [ OK ]
2021-01-03T23:06:14.690Z [MASTER] info: Connecting to database...
2021-01-03T23:06:15.698Z [MASTER] error: Database Connection Error: ECONNREFUSED 127.0.0.1:5432
2021-01-03T23:06:15.698Z [MASTER] warn: Will retry in 3 seconds... [Attempt 1 of 10]
2021-01-03T23:06:18.700Z [MASTER] info: Connecting to database...
2021-01-03T23:06:19.703Z [MASTER] error: Database Connection Error: ECONNREFUSED 127.0.0.1:5432
2021-01-03T23:06:19.703Z [MASTER] warn: Will retry in 3 seconds... [Attempt 2 of 10]
... (you get the point)
2021-01-03T23:06:51.728Z [MASTER] error: Database Connection Error: ECONNREFUSED 127.0.0.1:5432
2021-01-03T23:06:51.729Z [MASTER] warn: Will retry in 3 seconds... [Attempt 10 of 10]
2021-01-03T23:06:54.730Z [MASTER] info: Connecting to database...
2021-01-03T23:06:55.733Z [MASTER] error: Database Initialization Error: connect ECONNREFUSED 127.0.0.1:5432

我意识到我忘记创建一个 Postgresql,所以我使用 pgAdmin4.28 创建了一个“wiki”数据库错误现在更改为:

PS C:\wiki> node server
Loading configuration from C:\wiki\config.yml... OK
2021-01-04T00:27:21.979Z [MASTER] info: =======================================
2021-01-04T00:27:21.980Z [MASTER] info: = Wiki.js 2.5.170 =====================
2021-01-04T00:27:21.981Z [MASTER] info: =======================================
2021-01-04T00:27:21.982Z [MASTER] info: Initializing...
2021-01-04T00:27:22.363Z [MASTER] info: Using database driver pg for postgres [ OK ]
2021-01-04T00:27:22.365Z [MASTER] info: Connecting to database...
2021-01-04T00:27:22.428Z [MASTER] error: Database Connection Error: 28P01 undefined:undefined
2021-01-04T00:27:22.429Z [MASTER] warn: Will retry in 3 seconds... [Attempt 1 of 10]
2021-01-04T00:27:25.431Z [MASTER] info: Connecting to database...
2021-01-04T00:27:25.501Z [MASTER] error: Database Connection Error: 28P01 undefined:undefined
2021-01-04T00:27:25.501Z [MASTER] warn: Will retry in 3 seconds... [Attempt 2 of 10]
2021-01-04T00:27:28.503Z [MASTER] info: Connecting to database...
2021-01-04T00:27:28.545Z [MASTER] error: Database Connection Error: 28P01 undefined:undefined
2021-01-04T00:27:28.546Z [MASTER] warn: Will retry in 3 seconds... [Attempt 3 of 10]

请发送帮助!我感谢所有评论。谢谢!

解决方法

我的环境如下:Windows 10专业版号20h2节点版v14.15.4 PostgreSQL V 13.1,报错内容如下:

Loading configuration from D:\dev\workspace\wiki\config.yml... OK
2021-02-03T06:32:55.015Z [MASTER] info: =======================================
2021-02-03T06:32:55.016Z [MASTER] info: = Wiki.js 2.5.170 =====================
2021-02-03T06:32:55.016Z [MASTER] info: =======================================
2021-02-03T06:32:55.017Z [MASTER] info: Initializing...
2021-02-03T06:32:59.091Z [MASTER] info: Using database driver pg for postgres [ OK ]
2021-02-03T06:32:59.094Z [MASTER] info: Connecting to database...
2021-02-03T06:32:59.160Z [MASTER] error: Database Connection Error: 28P01 
undefined:undefined

你只需要将 config.yml 中的数据库配置修改如下:

db:
  type: postgres

  # PostgreSQL / MySQL / MariaDB / MS SQL Server only:
  host: localhost
  port: 5432
  user: postgres #YOU PostgreSQL USERNAME
  pass: willasas@wiki. #YOU PostgreSQL PASSWORD
  db: wiki #YOU DATABASE NAME
  ssl: false

然后运行代码

node server

然后在浏览器地址栏输入http://127.0.0.1 : 3000 /并行回车

,

我在使用 postgres 和 wiki.js 时遇到了类似的问题。 解决方案是在 postgres 中手动创建数据库,BEFORE 运行 node server:

CREATE DATABASE wiki

希望这可以为您节省我为解决这个问题而花费的时间。

,

经过几个小时的测试后,我意识到在 wiki.js 中使用 postgres 存在一些问题。这些是您可以在 config.yml 中尝试的一些建议:

db:
  type: postgres
  
  # if you are using docker try using IP instead of localhost
  host: localhost
  port: 5432
  
  # don't use _ here. It'll cause connection error undefined.
  user: wikijs
  
  # start with letter,if you start with @ it will throw an error.
  # I used a 18 long pass without any problem. Ex:
  pass: wiki@projectW777!@
  
  # you can use _ here. Ex:
  db: prj_wiki
,

如果您需要更改数据库密码,这可以帮助您:

ALTER USER postgres WITH PASSWORD 'xxx';

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...