pgAdmin 4服务器无法连接:致命错误。

4

我将PostgreSQL从13.3升级到了13.4,但在使用pgAdmin 4时遇到了致命错误。我发现了其他类似的问题,尝试通过删除文件夹"C:\Users\myusername\AppData\Roaming\pgadmin\sessions"并以管理员身份运行pgAdmin来解决问题,但没有任何效果。我还完全删除了postgres并重新安装了它,并使用单独的安装程序安装了pgAdmin,但仍然没有任何效果。

以下是出现的错误:

pgAdmin Runtime Environment
--------------------------------------------------------
Python Path: "D:\Program Files\PostgreSQL\13\pgAdmin 4\python\python.exe"
Runtime Config File: "C:\Users\Alessandro\AppData\Roaming\pgadmin\runtime_config.json"
pgAdmin Config File: "D:\Program Files\PostgreSQL\13\pgAdmin 4\web\config.py"
Webapp Path: "D:\Program Files\PostgreSQL\13\pgAdmin 4\web\pgAdmin4.py"
pgAdmin Command: "D:\Program Files\PostgreSQL\13\pgAdmin 4\python\python.exe -s D:\Program Files\PostgreSQL\13\pgAdmin 4\web\pgAdmin4.py"
Environment: 
  - ALLUSERSPROFILE: C:\ProgramData
  - APPDATA: C:\Users\Alessandro\AppData\Roaming
  - CHROME_CRASHPAD_PIPE_NAME: \\.\pipe\crashpad_6172_IWUHMIZQAVFZRPVX
  - CHROME_RESTART: NW.js|Spiacenti, si è verificato un arresto anomalo di NW.js. Riavviarlo ora?|LEFT_TO_RIGHT
  - CommonProgramFiles: C:\Program Files\Common Files
  - CommonProgramFiles(x86): C:\Program Files (x86)\Common Files
  - CommonProgramW6432: C:\Program Files\Common Files
  - COMPUTERNAME: HP820G1-ALESSAN
  - ComSpec: C:\WINDOWS\system32\cmd.exe
  - DriverData: C:\Windows\System32\Drivers\DriverData
  - FPS_BROWSER_APP_PROFILE_STRING: Internet Explorer
  - FPS_BROWSER_USER_PROFILE_STRING: Default
  - HOMEDRIVE: C:
  - HOMEPATH: \Users\Alessandro
  - JD2_HOME: D:\Program Files\JDownloader2
  - JDK_HOME: D:\Program Files\Java\jdk-16.0.2
  - LOCALAPPDATA: C:\Users\Alessandro\AppData\Local
  - LOGONSERVER: \\HP820G1-ALESSAN
  - NUMBER_OF_PROCESSORS: 4
  - OneDrive: D:\temp\OneDrive - Università di Salerno
  - OneDriveCommercial: D:\temp\OneDrive - Università di Salerno
  - OS: Windows_NT
  - Path: D:\Program Files\Python39\Scripts\;D:\Program Files\Python39\;C:\Program Files\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;D:\Program Files\UltraEdit;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;D:\Program Files\MATLAB\R2021a\bin;D:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin;D:\Program Files\Zerynth\ztc\windows64;D:\Program Files\PostgreSQL\13\bin;C:\Users\Alessandro\AppData\Local\Microsoft\WindowsApps;D:\Program Files\Java\jdk-16.0.2;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;D:\Program Files\Microsoft VS Code\bin;D:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin;D:\Program Files\JetBrains\PyCharm Community Edition 2021.1.1\bin;C:\Users\Alessandro\zerynth3\dist\sys\cli;D:\Program Files\PostgreSQL\13\bin;
  - PATHEXT: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW
  - PGADMIN_INT_KEY: 89448562-228e-4522-bc29-54d857da3f2a
  - PGADMIN_INT_PORT: 55190
  - PGADMIN_SERVER_MODE: OFF
  - PROCESSOR_ARCHITECTURE: AMD64
  - PROCESSOR_IDENTIFIER: Intel64 Family 6 Model 69 Stepping 1, GenuineIntel
  - PROCESSOR_LEVEL: 6
  - PROCESSOR_REVISION: 4501
  - ProgramData: C:\ProgramData
  - ProgramFiles: C:\Program Files
  - ProgramFiles(x86): C:\Program Files (x86)
  - ProgramW6432: C:\Program Files
  - PSModulePath: C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
  - PUBLIC: C:\Users\Public
  - PyCharm Community Edition: D:\Program Files\JetBrains\PyCharm Community Edition 2021.1.1\bin;
  - SESSIONNAME: Console
  - SystemDrive: C:
  - SystemRoot: C:\WINDOWS
  - TEMP: C:\Users\ALESSA~1\AppData\Local\Temp
  - TMP: C:\Users\ALESSA~1\AppData\Local\Temp
  - USERDOMAIN: HP820G1-ALESSAN
  - USERDOMAIN_ROAMINGPROFILE: HP820G1-ALESSAN
  - USERNAME: Alessandro
  - USERPROFILE: C:\Users\Alessandro
  - windir: C:\WINDOWS
--------------------------------------------------------

Traceback (most recent call last):
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\web\pgAdmin4.py", line 39, in <module>
    import config
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\web\config.py", line 25, in <module>
    from pgadmin.utils import env, IS_WIN, fs_short_path
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\web\pgadmin\__init__.py", line 24, in <module>
    from flask_socketio import SocketIO
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\flask_socketio\__init__.py", line 9, in <module>
    from socketio import socketio_manage  # noqa: F401
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\socketio\__init__.py", line 9, in <module>
    from .zmq_manager import ZmqManager
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\socketio\zmq_manager.py", line 5, in <module>
    import eventlet.green.zmq as zmq
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\eventlet\__init__.py", line 17, in <module>
    from eventlet import convenience
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\eventlet\convenience.py", line 7, in <module>
    from eventlet.green import socket
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\eventlet\green\socket.py", line 21, in <module>
    from eventlet.support import greendns
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\eventlet\support\greendns.py", line 401, in <module>
    resolver = ResolverProxy(hosts_resolver=HostsResolver())
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\eventlet\support\greendns.py", line 315, in __init__
    self.clear()
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\eventlet\support\greendns.py", line 318, in clear
    self._resolver = dns.resolver.Resolver(filename=self._filename)
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\dns\resolver.py", line 543, in __init__
    self.read_registry()
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\dns\resolver.py", line 720, in read_registry
    self._config_win32_fromkey(key, False)
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\dns\resolver.py", line 674, in _config_win32_fromkey
    self._config_win32_domain(dom)
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\dns\resolver.py", line 639, in _config_win32_domain
    self.domain = dns.name.from_text(str(domain))
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\dns\name.py", line 889, in from_text
    return from_unicode(text, origin, idna_codec)
  File "D:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\dns\name.py", line 852, in from_unicode
    raise EmptyLabel
dns.name.EmptyLabel: A DNS label is empty.

我不明白为什么会出现DNS问题,有人有建议或解决方法吗?谢谢。

1个回答

2
这是在pgAdmin4 5.1和5.7之间似乎发生了变化的事情。 我曾经在一台连接了WiFi移动热点的机器上看到过这个问题(但在其他情况下也可能会出现)。
这与Windows上使用dns库的方式有关,因此其他以相同方式使用它的应用程序也可能会出现这种情况。
基本上,dns.Resolver会扫描Windows注册表中所有网络接口,这些接口在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\下找到。

Registry content example

这台机器曾连接过的WiFi移动热点已设置了一个值为“.home”的DhcpDomain键。 dns.Resolver发现了这个值并使用点将其拆分成多个标签之一为空。 这导致了您提到的异常: dns.name.EmptyLabel:DNS标签为空
即使关闭了WiFi网络,这种情况仍会发生:这些是最后使用的设置,dns.Resolver没有检查接口是否启用。 pgAdmin的最新版本似乎是 dnspython (1.16.0)的旧版本,因此我不确定在更高版本中是否已解决此问题。 现在,似乎有两个选择:
  • 如果在 HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ Interfaces \ 的子键中找到它,则删除或更改 DhcpDomain 子键(甚至可能有一种方法通过控制面板强制该值)。

  • 连接到不设置此值的其他网络。


嗨,布鲁诺,谢谢你的帮助。我改变了DhcpDomain值,将其设置为可以在当前WiFi连接属性中找到的值。PgAdmin成功启动了。 - confy

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