Pgadmin无法加载

32
我最近在我的笔记本电脑上安装了pgadmin4,但当我启动应用程序时,它卡在加载界面。我查看了日志并发现以下内容:

加载界面的截图

日志信息

2020-11-14 00:22:46: Checking for system tray...
2020-11-14 00:22:46: Starting pgAdmin4 server...
2020-11-14 00:22:46: Creating server object, port:64222, key:2a079549-63da-44d2-8931-efa9de3a847f, logfile:C:/Users/yonis/AppData/Local/pgadmin4.d41d8cd98f00b204e9800998ecf8427e.log
2020-11-14 00:22:46: Python Path: C:/Program Files/PostgreSQL/13/pgAdmin 4/venv/Lib/site-packages;C:/Program Files/PostgreSQL/13/pgAdmin 4/venv/DLLs;C:/Program Files/PostgreSQL/13/pgAdmin 4/venv/Lib
2020-11-14 00:22:46: Python Home: C:/Program Files/PostgreSQL/13/pgAdmin 4/venv
2020-11-14 00:22:46: Initializing Python...
2020-11-14 00:22:46: Python initialized.
2020-11-14 00:22:46: Adding new additional path elements
2020-11-14 00:22:46: Redirecting stderr...
2020-11-14 00:22:46: stderr redirected successfully.
2020-11-14 00:22:46: Initializing server...
2020-11-14 00:22:46: Webapp Path: C:/Program Files/PostgreSQL/13/pgAdmin 4/web/pgAdmin4.py
2020-11-14 00:22:46: Server initialized, starting server thread...
2020-11-14 00:22:46: Open the application code and run it.
2020-11-14 00:22:46: Set the port number, key and force SERVER_MODE off
2020-11-14 00:22:46: PyRun_SimpleFile launching application server...
2020-11-14 00:22:47: Application Server URL: http://127.0.0.1:64222/?key=2a079549-63da-44d2-8931-efa9de3a847f
2020-11-14 00:22:47: The server should be up. Attempting to connect and get a response.
2020-11-14 00:22:53: Attempt to connect one more time in case of a long network timeout while looping
2020-11-14 00:22:53: Everything works fine, successfully started pgAdmin4.

1
这个日志文件在哪里可以找到?我有同样的问题,注册表更改没有解决它。编辑:通过右键单击通知区域图标并选择“查看日志”即可查看日志。 - Medinoc
1
pgAdmin 4 v4.28 keeps loading的重复问题。 - Lynn Crumbling
@Medinoc 我不明白这个日志文件在哪里可以找到? - Singh
1
@Singh 在运行PgAdmin的计算机上,任务栏通知区域中有一个PgAdmin图标。右键单击此图标会显示一个菜单,其中包含一个“查看日志”的选项。 - Medinoc
我没有看到这样的图标。还有其他想法,日志在哪里可以找到? - J Brun
10个回答

29
请查看以下链接:https://www.postgresql-archive.org/pg-Admin-4-v4-28-Errors-on-launch-td6162407.html。我认为这是你需要的修复方法。
大家好,我们在v4.28的预发布测试中无法在任何机器上重现此问题。经过一些研究和开发后,我们才能够重现此问题。问题的原因是:“HKEY_CLASSES_ROOT.js\Content Type”的值如果设置为“text/plain”则会导致此问题的出现。在任何JavaScript文件中,响应头中的内容类型应该是“text/javascript”,但在上述注册表设置中它是“text/plain”,因此浏览器不允许它。解决方法是打开注册表,将“HKEY_CLASSES_ROOT.js\Content Type”的值更改为“text/javascript”。
更新:PgAdmin4 5.0已经发布,你可以在这里查看。看起来这个问题已经不再是一个问题了,你可以看到我的截图:enter image description here
我的注册表值仍然是“text/plain”,我的PgAdmin如下所示:

在这里输入图像描述

所以,如果您仍然遇到这个问题,请尝试升级到PgAdmin4 5.0。


1
我可以确认这对我解决了问题,但我很想知道为什么一开始会出现这种情况,如果有人能提供一个好的解释呢?为什么4.27版本在安装4.28版本之前运行良好,然后突然两个版本都出现问题!? - André Engelbrecht
@AndréEngelbrecht,我认为这个链接应该对你有帮助:https://www.pgadmin.org/faq/#12。直接引用网站上的话:“pgAdmin 4 v4.28包括了额外的安全功能,其中之一旨在防止由内容嗅探引起的安全问题。” 这是pgAdmin 4 v4.28中的新功能,而v4.27中没有,但由于注册表配置错误,这部分在Windows 10上无法工作。 - Rusted Wizard
收到。谢谢 @Rusted Wizard - André Engelbrecht
谢谢你们的帮助。我最终下载了DBeaver,它完美地运行。 - Yonis Mohamoud
2
"HKEY_CLASSES_ROOT.js\Content Type" 转换为 "text/javascript" 解决了我的问题。谢谢! - EMR
显示剩余3条评论

17

根据这个修复程序的解释(这里)

如果在Windows上遇到此问题,请注意以下原因:"HKEY_CLASSES_ROOT\.js\Content Type" 的值在注册表管理器中设置为"text/plain",而Windows不接受它。现在将该值更改为"text/javascript"即可。

关闭pgAdmin服务器以查看这些更改。

现在一切都可以正常工作,您无需卸载或降级任何内容。


你节省了我很多时间。谢谢。 - Orion Cygnus
1
要更改这个设置,请转到“开始”菜单,搜索并选择“regedit”。这将打开注册表编辑器。从那里,您可以打开HKEY_CLASSES_ROOT,向下滚动并找到“.js”,打开内容类型,然后将值数据字段更改为“text/javascript”。 - Normajean

4

使用v4.28时出现了与之前相同的卡在加载界面上的问题。 而v4.27无法打开,会崩溃。 现在我将版本降级到了v4.26,并且一切正常。


我也遇到了这个问题,让我感到困惑,升级了PostgreSQL,但没有用。很高兴知道不只有我一个人遇到这个问题。不过,这个回答解决了这个问题。 - Rafs

3

3

3
TL;dr意为“太长不看”,原文的意思是:“摘要:(PGAdmin维护者推荐的新解决方案)”。

You can add the following lines to the " config_distro.py " and restart the pgAdmin 4 server:

import mimetypes
mimetypes.add_type('text/javascript', '.js')

详细版:

请查看此答案以获取详细解释。


如何将其添加到Docker中? - ImranRazaKhan

2
之前提到的config.pyconfig_distro.py的答案已经接近正确,但是根据https://www.pgadmin.org/docs/pgadmin4/4.28/config_py.html,也许最好使用的文件是config_local.py。这个文件会在config.pyconfig_distro.py设置应用后再应用。由于这个文件没有随安装程序分发,因此在升级时不会被覆盖。
在Windows中,这些文件可以位于例如"%programfiles%\PostgreSQL\13\pgAdmin 4\web"文件夹中,具体取决于您的版本号和安装位置。
因此,要解决此问题,请在与config.py相同的位置创建一个名为config_local.py的文件,并插入以下行:
import mimetypes
mimetypes.add_type('text/javascript', '.js')

最后,重新启动postgresql服务器,一切都应该很顺利!

0

我也遇到了同样的问题,一开始它正常工作,突然就停止了。我尝试了很多不同的方法,更新版本、卸载/安装等等,但是没有任何改变,只有一个HTML屏幕和6个链接无法工作,并显示PGadmin正在加载的消息...最后我尝试关闭我的广告拦截器,它就可以工作了。可能这是由于广告拦截器或PGAdmin的更新引起的问题。


0
如果在尝试了一切之后仍然遇到问题,只需按照以下步骤操作:
  1. 卸载与Postgresql软件包一起安装的pgAdmin(您可以只卸载pgAdmin而不是整个软件包)。
  2. 这里单独下载pgAdmin并进行安装。
  3. 重新启动postgresql服务器。

这对我起作用了。


0
以上的建议对我来说都不适用,因为我们的设置是Azure应用程序网关位于部署在AKS上的pgadmin之前,更新以下配置可以解决我们的问题,创建一个名为config_distro.py的额外文件。
  X_CONTENT_TYPE_OPTIONS = ""    # default value is nosniff
  ENHANCED_COOKIE_PROTECTION = False
  X_XSS_PROTECTION = "0"  # default value is '1; mode=block'

详细描述这些属性,请查看以下网址: https://www.pgadmin.org/docs/pgadmin4/latest/config_py.html

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