如何解决 PostgreSQL pgAdmin 的 "Server instrumentation not installed" 错误,以便使用 adminpack?

31
在Ubuntu上安装的PostgreSQL 9.1和pgAdmin III会出现以下警告信息:

专家提示 - 服务器未安装仪表功能

服务器仪表

该服务器缺少仪表功能。

pgAdmin II使用一些支持函数,在所有PostgreSQL版本中默认情况下并不都可用...

如果...已经安装并激活了adminpack

安装扩展后,您只需单击“修复”按钮即可...

如何解决这个问题?

2个回答

48

对于当前版本的PostgreSQL和pgAdmin,"Guru"对话框警告有一个"修复它!"按钮或命令。使用它。

如果没有"Fix it!",我们可以使用Unix命令行如下。

这是针对PostgreSQL 9.1的,旧版本做法不同。

PostgresSQL文档在此处:

像这样安装adminpack:

$ sudo apt-get install postgresql-contrib

为了验证我们已经获得了这些文件,请列出它们:

$ dpkg -L postgresql-contrib-9.1 | grep adminpack

结果:

/usr/share/postgresql/9.1/extension/adminpack.control
/usr/share/postgresql/9.1/extension/adminpack--1.0.sql
/usr/lib/postgresql/9.1/lib/adminpack.so

寻找 adminpack 文件的另一种方法:

$ sudo updatedb
$ locate adminpack

使用psql创建扩展:

$ sudo -u postgres -i
$ psql [dbname]
# CREATE EXTENSION adminpack;

(如果您没有超级用户权限,或者需要创建一个每个数据库的扩展,请参见@w00t下面的评论,使用\c dbname连接到数据库)

验证:

# select * from pg_extension;

结果:

extname  | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition 
-----------+----------+--------------+----------------+------------+-----------+--------------
plpgsql   |       10 |           11 | f              | 1.0        |           | 
adminpack |       10 |           11 | f              | 1.0        |           | 

要将扩展加载到pgAdmin中,请查看数据库服务器图标:

  • 右键单击图标,然后选择“Disconnent”
  • 右键单击图标,然后选择“Connent”

要验证adminpack是否正常工作:

  • 单击数据库图标
  • 在右上方窗格上,单击“Statistics”选项卡。
  • 向下滚动到统计数据的底部。
  • 现在您会看到一个显示磁盘上数据库大小的“Size”条目。

2
完成手动操作后(我的数据库用户没有超级用户访问权限),它显示了大小,但pgadmin3仍然抱怨。 <耸肩> - w00t
2
找到了:我首先需要\c dbname连接到数据库,显然这个扩展是针对每个数据库的。 - w00t
1
“locate adminpack” 给了我 /usr/share/postgresql/9.5/extension/adminpack.control,但我安装的是 postgres 9.3,所以 CREATE EXTENSION adminpack; 给了我 could not open extension control file "/usr/share/postgresql/9.3/extension/adminpack.control": No such file or directory。我需要一些建议。 - poshest
1
为了解决我的困境,我安装了 sudo apt-get install postgresql-contrib-9.3,现在它可以正常工作了。之前我安装了 sudo apt-get install postgresql-contrib(没有指定版本)。 - poshest
1
微小的修正 - 应该是 "sudo -u postgres -i" 和 "psql [dbname]"。 - user323094
显示剩余2条评论

3
“修复它!”按钮将出现在“Guru Hint”对话框中,靠近OK和Cancel。如果您没有看到该按钮,请在控制台中输入以下内容:
sudo apt-get install postgresql-contrib

然后点击大师按钮(在我的版本中,一个面朝左侧的脸,位于?按钮的左侧),“修复它!”按钮应该会出现。点击它。

如果“修复它!”按钮没有出现,请参考joelparkerhenderson的答案。


对我来说,指定版本与我的Postgresql版本相一致非常重要。例如 sudo apt-get install postgresql-contrib-9.3,而不是 sudo apt-get install postgresql-contrib - poshest

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