我尝试以用户postgres身份运行pgadmin3,并且出现以下错误:
No protocol specified
Error: Unable to initialize gtk, is DISPLAY set properly?
命令pgadmin3
在pavel(我的主要用户帐户)下运行良好。
关于这个问题的答案表明,或者是一些服务器连接魔术(不是我的情况-我试图在localhost上运行它),或者设置DISPLAY变量。我在pavel和postgres下都通过printenv对其进行了检查,两者均为0。我使用技巧来查找在两个用户下都设置了DISPLAY变量的进程。对于pavel,有很长的列表,其中DISPLAY值为:0(对于大多数进程,包括pgadmin)或:0.0(对于某些进程)。但是对于postgres,列表中只有三个或四个过程。
这就是我遇到的问题:如何为进程设置环境变量(在本例中为DISPLAY)?更好的是,对于应用程序/用户组合,以便该过程从一开始就看到DISPLAY设置。我已经尝试过在ETC /环境中对DISPLAY进行硬编码,但是没有任何变化-它会影响DISPLAY值的设置位置(对于用户和进程),但不会影响其对用户运行的进程的可见性。
听起来您sudo
想要给postgres
用户,然后尝试从那里运行Pgadmin。
不要那样做
在没有的情况下,以常规用户身份运行PgAdmin sudo
。您可能需要在数据库上创建一个用户帐户和/或进行编辑pg_hba.conf
以首先允许连接,但是一旦完成,您就可以使用PgAdmin。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句