database - 某些 PostgreSQL 数据库无法通过 Navicat 或 pgAdmin 等客户端查看

标签 database postgresql ubuntu pgadmin navicat

当我使用 pgAdmin 或 Navicat 登录查看我的远程 PostgreSQL 数据库时,我可以毫无问题地连接,下面列表中的前三个数据库显示正常。但出于某种原因,我无法让最后两个数据库(“template0”和“template1”)与其他数据库一起显示。此外,当我通过 ssh 进入服务器的数据库时,我可以运行“SELECT * FROM a_table_in_template1_database;”它显示了表的所有内容,没有任何问题,所以我知道数据库和其中的表一切正常。如何让“template1”数据库显示在此列表中并正常工作?这是我运行“\list”时 PostgreSQL 终端的输出:

template1=# \list
                                List of databases
     Name      |  Owner   | Encoding | Collation | Ctype |   Access privileges   
---------------+----------+----------+-----------+-------+-----------------------
 mygigline     | jball037 | LATIN1   | en_US     | en_US | 
 mygiglinemain | postgres | LATIN1   | en_US     | en_US | 
 postgres      | postgres | LATIN1   | en_US     | en_US | 
 template0     | postgres | LATIN1   | en_US     | en_US | =c/postgres
 template1     | postgres | LATIN1   | en_US     | en_US | =CTc/postgres
                                                         : postgres=CTc/postgres
(5 rows)

看起来可能是某些具有“访问权限”的东西导致了这种情况。然而,我做了类似“GRANT ALL ON DATABASE template1 TO postgres”的事情,但这似乎没有帮助。

另一条有用的信息:当我使用 Navicat 登录并显示三个数据库时,我可以单击“打开数据库”选项,然后输入“template1”,它将显示在左侧面板上以及其他三个数据库,但我无法单击它或对其执行任何操作。

我只想在 Navicat 或 pgAdmin 中显示我的所有 5 个数据库,并能够访问所有这些数据库:) 非常感谢任何帮助!

最佳答案

这些工具倾向于隐藏 pg_database.datastemplatetrue 的数据库,因为它们被视为“内部”数据库而不是普通用户数据库。

客户端应用程序可能会提供取消隐藏这些数据库的设置,或者您可以通过名称直接打开它们。

请注意,template0 通常是一个您无法修改的只读数据库,因此在管理 UI 中访问它意义不大。 template1 可以连接和修改,但是当您创建新数据库时,无论您对 template1 做什么都会被复制(没有显式的 TEMPLATE 选项) 所以您通常不想更改它。

我强烈建议您忽略 template0template1。假装它们不存在。

关于database - 某些 PostgreSQL 数据库无法通过 Navicat 或 pgAdmin 等客户端查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15754010/

相关文章:

C_icap 与 pthread 链接时出错

database - ADO.Net EF - 如何在模型优先方法中定义外键关系?

Mysql 查询卡在发送数据中

使用 Npgsql for Postgresql 的 C# 查询显示重复的结果和缺失的表数据

Django - 如何设置两个具有相同字段的模型?

ruby-on-rails - 如何检索 group_by 的每组中的第一个值?

database - 如何优雅地设计表示 ADDRESS 的数据库模式?

php - 在 MYSQL/PHP 中,我如何从 ID 1 中删除并将数据插入到 ID 5

linux - 如何确保 Ubuntu 中文件复制的完整性

python - Kerberos 安装错误,错误 : Setup script exited with error: command 'i686-linux-gnu-gcc' failed with exit status 1