标签: postgresql

无法从 Azure VM 远程访问 postgres

我正在尝试远程访问 postgres 数据库,但我一生都无法让它工作。

我已在 Azure 中使用 Ubuntu 14.04 安装了第 2 代 Linux VM,并安装了 postgres。SSH 可以远程工作,psql 在远程连接时也可以正常工作。

我已采取的步骤:

  1. 更新postgresql.conf listen_addresses为'*'并通过 进行确认,psql并且show listen_addresses它正在收听*.

  2. pg_hba.conf通过添加更新host all all 0.0.0.0/0 md5。

  3. 在端口 5432 的 Azure 网络安全组中添加了入站允许规则。在此输入图像描述

  4. 重新启动 postgres/ubuntu。

完成这些步骤后,我可以很好地使用和访问 psql,但每当我尝试通过 pgAdmin3 远程连接到实例时,我都会收到一条错误,指出连接超时。

此外,当我远程使用端口检查器时,端口 5432 被报告为已关闭。

我错过了什么/做错了什么?

提前致谢。

更新:

这是当前的输出iptables -S 在此输入图像描述

postgresql port azure

5
推荐指数
1
解决办法
6326
查看次数

可以在 postgres 上运行时检查可用内核吗?

TL; DR:是否有办法查询 postgres 实例有多少个内核可用于处理?

Postgres 在跨可用核心高效并行多个查询方面享有盛誉。

我正在编写一个具有 CPU 密集型数据转换管道的应用程序,由 postgres 在大量源数据集合上执行。每个管道将是单个连接的工作,我希望通过建立多个连接并执行工作(发生在单个连接范围内的临时表中)来利用并行性。

我想调整与数据库维护的并发连接数。我倾向于使用可用内核的乘数,例如 1.5 倍,以免 DBMS 因等待连接而陷入困境,但仍确保它始终有工作要做。

但是,DBMS 将是用户选择的 AWS RDS 实例。我事先不知道有多少个核心可用。有没有办法查询数据库来找出答案?

postgresql

5
推荐指数
1
解决办法
4854
查看次数

`systemctl disable --now postgresql` 不会停止守护进程

我正在运行来自 apt.postgresql.org 的 Debian Stretch 和 PostgreSQL 10。当我做:

postgresql disable --now postgresql
Run Code Online (Sandbox Code Playgroud)

数据库服务器不会停止。它说:

Synchronizing state of postgresql.service with SysV service script with /lib/systemd/systemd-sysv-install.                                                                                                
Executing: /lib/systemd/systemd-sysv-install disable postgresql                                      
insserv: warning: current start runlevel(s) (empty) of script `postgresql' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `postgresql' overrides LSB defaults (0 1 6).
Run Code Online (Sandbox Code Playgroud)

但这可能并不重要。

systemctl disable --now postgresql@10-main做这份工作,但我对postgresql单位很好奇。它的start, stop,任务restart工作reload正常。 …

postgresql systemd systemctl

5
推荐指数
0
解决办法
2179
查看次数

无法从 postgres 返回 root:强制输入发现无效的 postgres 密码

我已经在 Ubuntu 上安装了 postgres 并将我切换到 postgres 用户。我已经打开psql创建了一个数据库,然后决定切换回root。但是,它不允许我:

sudo su - 
Run Code Online (Sandbox Code Playgroud)

结果它问我

[sudo] password for postgres:
Run Code Online (Sandbox Code Playgroud)

我尝试输入只是为了得到

Sorry, try again
Run Code Online (Sandbox Code Playgroud)

然后我决定尝试使用以下答案更改 postgres 密码:

ALTER USER postgres WITH PASSWORD 'postgres';
Run Code Online (Sandbox Code Playgroud)

它看起来有效,但是在尝试再次切换到 root 后,它仍然不允许我。

postgresql ubuntu sql database

5
推荐指数
1
解决办法
4902
查看次数

从文件系统备份中恢复 PostgreSQL 数据库

我有一个 PostgreSQL 8.3 数据目录备份。我需要将此备份中的数据库复制到新的 PostgreSQL 实例中。由于旧服务器的问题,我无法对数据库进行 pg_dump。

我已经弄清楚哪个目录是有问题的数据库。例如,在 MySQL 中,您通常要做的就是关闭服务器,复制目录并重新启动它,数据库将可用。现在这不适用于 PostgreSQL,我怀疑这是因为该数据库未在 global/pg_database 文件中列出。这个文件似乎是在 PostgreSQL 启动时自动生成的,所以我如何告诉系统数据库在那里?

postgresql disaster-recovery

4
推荐指数
1
解决办法
9585
查看次数

MySQL 日志与 Postgresql 日志相比如何?

MySQL有不少日志:

  • InnoDB 事务日志
  • 二进制日志
  • 一般查询日志
  • 错误日志
  • 慢查询日志

我知道 Postgresql 的 WAL,它相当于 InnoDB 的事务日志(对吗?)。

其他 MySQL 日志(例如 bin 日志)呢?它们是否与 Postgresql 等效?

mysql postgresql replication transaction-log

4
推荐指数
1
解决办法
4471
查看次数

DB Full Vacuum、Cluster、Analyze - 以什么顺序?

我有一个巨大的(~150 GB)postgresql 数据库,它的性能在过去几周内下降了。为了提高性能,我打算执行FULL VACUUM、CLUSTER和ANALYZE。

我应该按什么顺序执行这些操作?我不介意执行所需的时间,只介意数据库的性能改进。

谢谢,

乌迪

postgresql cluster database vacuum

4
推荐指数
1
解决办法
1489
查看次数

PostgreSQL:允许执行函数(插入到表中)但没有直接插入的权限

对不起,如果这是问这个问题的错误地方。

我创建了一个将值插入到许多表中的函数,我希望 Web 前端执行此函数。我给web前端的登录角色授予了execute权限,但是我不希望web前端代码能够直接插入值到表中,我希望web前端只使用我为此目的而创建。

如果我为 web 前端的登录角色授予执行权限,但我没有授予插入到函数中的表的插入权限,则会发生访问错误。

我该怎么办?

postgresql permissions database-administration

4
推荐指数
1
解决办法
6655
查看次数

在 PostgreSQL 中同时启用 ident 和 md5 身份验证

在 Fedora 12 上,我为自己设置了一个测试数据库,默认情况下 pg_hba.conf 包含以下内容:

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               ident
# IPv4 local connections:
host    all         all         127.0.0.1/32          ident
# IPv6 local connections:
host    all         all         ::1/128               ident
Run Code Online (Sandbox Code Playgroud)

我想启用 md5 登录,以便名为“foo”的 PostgreSQL 用户可以访问名为“foo”的数据库。但是,当我添加这一行并重新启动 postgres 时:

local   foo         foo                               md5
Run Code Online (Sandbox Code Playgroud)

使用我的普通用户帐户运行 psql -U 'foo' 仍然会产生以下消息:

psql: FATAL:  Ident authentication failed for user "foo"
Run Code Online (Sandbox Code Playgroud)

在我可以通过 md5 登录到 'foo' 之前,我必须删除第一个本地行(它有 ident)。

如何在保持身份验证的同时为“foo”启用 md5 身份验证?

postgresql fedora

4
推荐指数
1
解决办法
4676
查看次数

如何访问 postgresql 中的密码散列?尝试在 ubuntu 中安装 postgresql-contrib,仍然无法访问散列函数

所以我试图在 postgresql 中散列一些密码,我为 postgresql 找到的唯一散列解决方案是 pgcrytpo 包的一部分(http://www.postgresql.org/docs/8.3/static/pgcrypto.h)。 html ) 应该在 postgresql-contrib ( http://www.postgresql.org/docs/8.3/static/contrib.html ) 中。

所以我安装了 postgresql-contrib,(sudo apt-get install postgresql-contrib),重新启动了我的服务器(作为重新启动 postgresql 的简单方法)。

但是,我仍然无法访问应该在 postgresql-contrib 中的任何散列函数,例如:

ninjawars=# select crypt('global salt' || 'new password' || 'user created date', gen_salt('sha256'));
ERROR:  function gen_salt(unknown) does not exist

ninjawars=# select digest('test', 'sha256') from players limit 1;
ERROR:  function digest(unknown, unknown) does not exist

ninjawars=# select hmac('test', 'sha256') from players limit 1;
ERROR:  function hmac(unknown, unknown) does not exist
Run Code Online (Sandbox Code Playgroud)

那么如何在 ubuntu 上的 postgresql 中散列密码呢?

postgresql ubuntu

4
推荐指数
1
解决办法
1万
查看次数