You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Navicat连接VMware中CentOS Docker PostgreSQL无表显示问题

解决Navicat连接Docker PostgreSQL看不到表的问题

1. 确认Navicat连接的数据库是否匹配

你的student表存在于template1数据库中,但Navicat默认连接后可能自动选中postgres数据库。切换到左侧导航栏的template1数据库,再查看表列表。

2. 检查表的权限与所有者

进入容器内的PostgreSQL,执行以下命令查看表的所有者:

SELECT tableowner FROM pg_tables WHERE tablename = 'student';

如果表的所有者不是你连接Navicat使用的postgres用户,执行权限赋予命令:

GRANT ALL PRIVILEGES ON TABLE student TO postgres;
GRANT SELECT ON TABLE student TO postgres;

3. 排查Navicat的表筛选规则

右键点击template1数据库下的「表」选项,选择「筛选」,确认没有设置过滤条件(比如仅显示特定所有者的表),取消不必要的筛选后刷新表列表。

4. 验证数据卷挂载的正确性

你的启动命令中数据卷挂载路径为/var/lib/pgsql:/var/lib/postgresql/data,需检查CentOS端目录权限:

  • 执行ls -ld /var/lib/pgsql,确认所有者为UID=999的用户(对应容器内的postgres用户)
  • 权限不符时执行:
chown -R 999:999 /var/lib/pgsql

也可以临时移除数据卷挂载,重新启动容器并手动创建student表,测试Navicat是否能正常显示,排除数据卷路径异常问题。

5. 检查表所在的Schema

执行SQL确认表的Schema:

SELECT table_schema FROM pg_tables WHERE tablename = 'student';

如果表不在默认的public Schema中,右键数据库→「属性」→「高级」,将对应Schema添加到「可见的schema」列表中。

6. 重启相关服务

关闭Navicat,重启PostgreSQL容器:

docker restart postg11

重新打开Navicat连接数据库,刷新表列表。

内容的提问来源于stack exchange,提问作者Ting

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 17:53:27