pgAdmin 4 服务器无法连接

5
我已经安装了PostgreSQL 12和pgAdmin 4。当我尝试运行pgAdmin 4时,出现致命错误“无法联系到pgAdmin 4服务器”。我已经尝试以管理员身份运行它、删除“C:\Users\User\AppData\Roaming\pgAdmin”目录下的文件,并将“C:\Program Files\PostgreSQL\12\bin”添加到系统环境变量中。我不知道还能做什么。我确定PostgreSQL服务器正在运行,因为它在services.msc中显示为服务正在运行。
以下是运行pgAdmin 4时的日志记录。我可以看到有些地方出了问题,但我不知道该如何解决:
Traceback (most recent call last):
  File "C:/Program Files/pgAdmin 4/v4/web/pgAdmin4.py", line 217, in <module>
    main()
  File "C:/Program Files/pgAdmin 4/v4/web/pgAdmin4.py", line 199, in main
    app.run(
  File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\flask\app.py", line 943, in run
    run_simple(host, port, self, **options)
  File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\werkzeug\serving.py", line 1052, in run_simple
    inner()
  File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\werkzeug\serving.py", line 996, in inner
    srv = make_server(
  File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\werkzeug\serving.py", line 847, in make_server
    return ThreadedWSGIServer(
  File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\werkzeug\serving.py", line 740, in __init__
    HTTPServer.__init__(self, server_address, handler)
  File "C:/Program Files/pgAdmin 4/v4/venv/Lib\socketserver.py", line 452, in __init__
    self.server_bind()
  File "C:/Program Files/pgAdmin 4/v4/venv/Lib\http\server.py", line 140, in server_bind
    self.server_name = socket.getfqdn(host)
  File "C:/Program Files/pgAdmin 4/v4/venv/Lib\socket.py", line 756, in getfqdn
    hostname, aliases, ipaddrs = gethostbyaddr(name)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 5: invalid start byte

这是另一个 .log 文件:

2020-08-31 17:15:12: Checking for system tray...
2020-08-31 17:15:12: Starting pgAdmin4 server...
2020-08-31 17:15:12: Creating server object, port:52967, key:459b0c86-b99e-46f0-9070-55554b9621d3, logfile:C:/Users/user/AppData/Local/pgadmin4.d41d8cd98f00b204e9800998ecf8427e.log
2020-08-31 17:15:12: Python Path: C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages;C:/Program Files/pgAdmin 4/v4/venv/DLLs;C:/Program Files/pgAdmin 4/v4/venv/Lib
2020-08-31 17:15:12: Python Home: C:/Program Files/pgAdmin 4/v4/venv
2020-08-31 17:15:12: Initializing Python...
2020-08-31 17:15:12: Python initialized.
2020-08-31 17:15:12: Adding new additional path elements
2020-08-31 17:15:12: Redirecting stderr...
2020-08-31 17:15:12: stderr redirected successfully.
2020-08-31 17:15:12: Initializing server...
2020-08-31 17:15:12: Webapp Path: C:/Program Files/pgAdmin 4/v4/web/pgAdmin4.py
2020-08-31 17:15:12: Server initialized, starting server thread...
2020-08-31 17:15:12: Open the application code and run it.
2020-08-31 17:15:12: Set the port number, key and force SERVER_MODE off
2020-08-31 17:15:12: PyRun_SimpleFile launching application server...
2020-08-31 17:15:13: Application Server URL: http://127.0.0.1:52967/?key=459b0c86-b99e-46f0-9070-55554b9621d3
2020-08-31 17:15:13: The server should be up. Attempting to connect and get a response.
2020-08-31 17:15:21: Failed to launch the application server, server thread exiting.

如果您知道我可以做什么,请帮助我。

1
使用 psql。它更快、更智能,而且不会那么复杂。 - Laurenz Albe
我已经花费了几个小时来解决/更新/等等我的pgadmin4关于这个问题(以一种不是由于这个问题的接受答案引起的方式),我只能同意@LaurenzAlbe。 - Luis
4个回答

3

在亲身遇到了与给定错误和堆栈跟踪完全相同的问题后,我终于找到了解决方案。

我的电脑主机名是导致问题的原因,因为它包含一个非 ASCII 字符 'æ'。所以,如果用于 pgadmin 的主机名只能包含 ASCII 字符。

解决方案就是将主机名更改为不包含 'æ' 的其他字符(例如,在我的情况下将其由 æ 改为 ae)。主机名是电脑实际名称,可以在系统属性(此 PC 然后 属性)下找到并编辑。


这很有道理,因为我的主机名中有字母'ł'。我会检查一下是否是这种情况。 - Michał Maciejewski
就是这样了!非常感谢你! - Michał Maciejewski

2

0
你可以尝试打开任务管理器,查找后台运行的PostgreSQL进程,然后点击“结束任务”来关闭它们。

0

我采纳了Takamura的建议,在任务管理器中结束了PostgreSQL。这样做是有效的,但我还执行了一个额外的步骤,就是以管理员身份打开pgAdmin 4。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接