我的数据库存在问题。我在我的Ubuntu服务器上安装了postgreSQL 9.5。我更改了postgresql.conf文件以允许将postgreSQL服务器绑定到localhost。这允许我运行pgAdmin并通过转发端口5432连接到我的数据库,在那里运行我的postgreSQL。
我遇到的问题是我只看到默认表'postgres',但不是我新创建的'游戏'(我通过运行create database games
创建了这个表,其中postgres用户连接到服务器)
这是我的pgAdmin应用程序的屏幕截图,其中包含我用来连接到服务器的所有属性值。
从第一张图片中可以看出,我使用与postgres数据库相同的权限 - 它是空白的,应该授予每个人访问权限。我知道我必须稍后更改它并将其限制为我拥有的postgres用户,但是现在我会这样做。一旦我设法看到我的“游戏”数据库,那么我将开始更多地收紧安全性。
更新我授予了对数据库“游戏”的所有访问权限,这在第三个屏幕截图中可见。访问权限是不同的。这对我没有帮助,当用pgAdmin连接到服务器时,我仍然看不到数据库。看到有人遇到类似问题并在服务器上右键单击并单击“新建数据库”。这似乎创建了一个新数据库,因为从pgAdmin可以看到,应用程序设法找到我在pgAdmin中创建的分数表。我相信这种情况的原因是,因为运行连接到服务器postgres=# select * from score;
的相同SQL会导致ERROR: relation "score" does not exist LINE 1: select * from score;
。
答案 0 :(得分:1)
我设法找到了问题。我的一个问题是我(不知道)在我的机器上安装了一个postgreSQL服务器。好像我用我的long long
安装它安装了它。所以每次我连接到我的服务器,我都会建立到我的localhost服务器的连接,而不是我的远程服务器。所以我刚刚卸载了服务器并只安装了pgAdmin客户端。
我遇到的第二个问题是文件pgAdmin
必须更改。所以我跑:
/etc/postgresql/9.5/main/pg_hba.conf
并更改了行
sudo vi /etc/postgresql/9.5/main/pg_hba.conf
到
# Database administrative login by Unix domain socket
local all postgres peer
更改后,我必须通过执行以下命令重新启动配置:
# Database administrative login by Unix domain socket
local all postgres md5
我还要指出,将postgres用户作为具有相同密码的unix和DB用户非常重要。我找到了所有这些信息here。
答案 1 :(得分:0)
尝试为新表明确授予访问权限。
我相信空白访问权限列意味着该表具有DEFAULT访问权限。缺省情况可能是表,列,模式和表空间没有公共访问权限。有关详细信息:http://www.postgresql.org/docs/9.4/static/sql-grant.html