pgAdmin 9.5 没有显示所有数据库
pgAdmin 9.5 not showing all databases
我的数据库有问题。我在 Ubuntu 服务器上安装了 postgreSQL 9.5。我更改了 postgresql.conf 文件以允许将 postgreSQL 服务器绑定到本地主机。这允许我 运行 pgAdmin 并通过转发端口 5432 连接到我的数据库,我 运行 我的 postgreSQL.
我遇到的问题是我只看到默认的 table 'postgres',但看不到我新创建的 'games'(我创建了这个 table 运行ning create database games
使用连接到服务器的 postgres 用户)。
这是我的 pgAdmin 应用程序屏幕截图,其中包含我用来连接服务器的所有 属性 值。
正如您从第一张图片中看到的那样,我使用了与 postgres 数据库相同的权限 - 它是空白的,应该向所有人授予访问权限。我知道我必须稍后更改它并将其限制为我拥有的 postgres 用户,但现在我会这样。一旦我设法看到我的 'games' 数据库,我就会开始加强安全措施。
UPDATE 我授予了对数据库 'games' 的所有访问权限,这在第三个屏幕截图上可见。访问权限不同。这对我没有帮助,当使用 pgAdmin 连接到服务器时,我仍然看不到数据库。 A 看到有人遇到了类似的问题,运行 右键单击服务器并单击 'New database'。这似乎创建了一个新数据库,因为正如您从 pgAdmin 中看到的那样,应用程序设法找到了我在 pgAdmin 中创建的分数 table。我认为是这种情况的原因是,因为 运行 连接到服务器 postgres=# select * from score;
的相同 SQL 结果为 ERROR: relation "score" does not exist LINE 1: select * from score;
.
尝试为您的新 table 明确授予访问权限。
我认为空白的访问权限列意味着 table 具有默认访问权限。对于 tables、列、模式和 table 空间,默认情况下可能没有 public 访问权限。更多信息:http://www.postgresql.org/docs/9.4/static/sql-grant.html
我设法找到了问题所在。我的问题之一是我(没有意识到)在我的机器上安装了一个 postgreSQL 服务器。似乎我在安装 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
更改后,我必须通过执行以下命令重新启动配置:
sudo /etc/init.d/postgresql reload
我还要指出,让 postgres 用户作为具有相同密码的 unix 和 DB 用户很重要。我找到了所有这些信息 here。
我的数据库有问题。我在 Ubuntu 服务器上安装了 postgreSQL 9.5。我更改了 postgresql.conf 文件以允许将 postgreSQL 服务器绑定到本地主机。这允许我 运行 pgAdmin 并通过转发端口 5432 连接到我的数据库,我 运行 我的 postgreSQL.
我遇到的问题是我只看到默认的 table 'postgres',但看不到我新创建的 'games'(我创建了这个 table 运行ning create database games
使用连接到服务器的 postgres 用户)。
这是我的 pgAdmin 应用程序屏幕截图,其中包含我用来连接服务器的所有 属性 值。
正如您从第一张图片中看到的那样,我使用了与 postgres 数据库相同的权限 - 它是空白的,应该向所有人授予访问权限。我知道我必须稍后更改它并将其限制为我拥有的 postgres 用户,但现在我会这样。一旦我设法看到我的 'games' 数据库,我就会开始加强安全措施。
UPDATE 我授予了对数据库 'games' 的所有访问权限,这在第三个屏幕截图上可见。访问权限不同。这对我没有帮助,当使用 pgAdmin 连接到服务器时,我仍然看不到数据库。 A 看到有人遇到了类似的问题,运行 右键单击服务器并单击 'New database'。这似乎创建了一个新数据库,因为正如您从 pgAdmin 中看到的那样,应用程序设法找到了我在 pgAdmin 中创建的分数 table。我认为是这种情况的原因是,因为 运行 连接到服务器 postgres=# select * from score;
的相同 SQL 结果为 ERROR: relation "score" does not exist LINE 1: select * from score;
.
尝试为您的新 table 明确授予访问权限。
我认为空白的访问权限列意味着 table 具有默认访问权限。对于 tables、列、模式和 table 空间,默认情况下可能没有 public 访问权限。更多信息:http://www.postgresql.org/docs/9.4/static/sql-grant.html
我设法找到了问题所在。我的问题之一是我(没有意识到)在我的机器上安装了一个 postgreSQL 服务器。似乎我在安装 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
更改后,我必须通过执行以下命令重新启动配置:
sudo /etc/init.d/postgresql reload
我还要指出,让 postgres 用户作为具有相同密码的 unix 和 DB 用户很重要。我找到了所有这些信息 here。