标签: postgresql

使用 OpenSSL s_client 通过 SSL 连接到 PostgreSQL

我正在尝试使用来自s_clientXP 上OpenSSL 的 SSL 连接到 AWS 上的 PostgreSQL 服务器。我可以使用这个连接到第三方s_client。在服务器和 XP 上,我都使用 openssl 版本 0.9.8.k。

当我尝试连接到我的服务器时,我得到了结果:

CONNECTED(00000003) 2036:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:188 :

在 Postgres 日志中,我看到了以下条目:

2009-10-30 13:58:08 UTC LOG: invalid length of startup packet

我很感激任何关于在哪里寻找让这个工作的建议。也许有一个公共 AWS 映像我可以查看已知可以在哪个 PostgreSQL 上工作?

postgresql openssl

8
推荐指数
3
解决办法
8331
查看次数

MySQL 在某些方面比 PostgreSQL 更好吗?

我知道这个问题听起来很挑衅,但事实并非如此。我最近发现 MySQL 在很多领域都存在限制,并且越来越喜欢 PostgreSQL。它的扩展性更好,并且比 MySQL 更尊重 SQL 标准。

我仍然是 PostgreSQL 世界的新手,并且由于我愿意在我未来的所有项目中远离 MySQL,我想知道的是:MySQL 是否有任何特定的特性使它做得更好(如更多高性能或更用户友好等..)比在 PostgreSQL 中?

我想知道我会从 MySQL 中错过什么。我已经发现 MySQL 中的 AUTO_INCREMENT 字段比 PostgreSQL 中的 SEQUENCES 更方便,而且过去在 Windows 中的部署是有问题的(不再是问题了。对我来说从来都不是问题)。

还有什么?

mysql postgresql sql

8
推荐指数
1
解决办法
3704
查看次数

Postgres vs MySQL:哪一个更难横向扩展?

根据您的经验,哪个数据库服务更难扩展?MySQL 还是 Postgres?我知道 MySQL 有几个开箱即用的缩放/集群功能,但是对于 Postgres,没有一个是开箱即用的。CMIIW。

编辑:

对不起,这里的混淆,我的问题是指横向扩展(水平扩展),即集群、分片等。我知道两者都可以水平扩展,但哪个更容易实现?

谢谢你的分享。

mysql postgresql scaling

8
推荐指数
2
解决办法
7342
查看次数

表的维护:在截断和重新填充后是否需要重新索引表?

我有一个包含大约 200 万行交易数据的表,用于分析。每周我们都会用新数据重新加载它,因此我们一直使用 TRUNCATE 将其清除,然后插入新行。

表上有几个索引。如果我不删除并重新创建索引,我是否需要在每次截断和重新填充后重新编制索引,还是没有必要?我应该在 TRUNCATE 之后运行 VACUUM 还是这也是不必要的?

postgresql database database-performance

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

在virtualenv中安装后django找不到psycopg2

我想将 postgresql 与 django 一起使用,因此执行了以下操作:

sudo apt-get install libpq-dev python-dev
sudo apt-get update
workon myenv
sudo pip install psycopg2
Run Code Online (Sandbox Code Playgroud)

在settings.py正确配置我之后,我运行

./manage.py syncdb
Run Code Online (Sandbox Code Playgroud)

但是会抛出异常:

django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2
Run Code Online (Sandbox Code Playgroud)

数据库配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'mydb',
        'USER': 'postgres',
        'PASSWORD': 'password1234',
        'HOST': 'localhost',
        'PORT': '',
    }
}
Run Code Online (Sandbox Code Playgroud)

postgresql django virtualenv

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

Postgresql 提供的用户名和经过身份验证的用户名不匹配

我正在尝试使用 PostgreSql 在我自己的服务器上运行 tinyRSS。但是我不断收到此错误:

LOG:  provided user name (tinyrss) and authenticated user name (apache) do not match
FATAL:  Peer authentication failed for user "tinyrss"
Run Code Online (Sandbox Code Playgroud)

我知道 postgresql 使用基于主机的身份验证,并且由于我没有与主机相同的帐户名(tinyrss),因此我需要使用用户名映射,因此我将此行添加到pg_ident.conf:

# MAPNAME       SYSTEM-USERNAME         PG-USERNAME
tinyrss hongyi tinyrss
Run Code Online (Sandbox Code Playgroud)

和下pg_hba.conf:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

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

我能知道我做错了什么以及解决方法吗?提前致谢!

postgresql

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

如何将PostgreSQL“GRANT ALL ON ALL TABLES”应用于新表?

正如在GRANT SELECT 对 postgresql 中的所有表的问题中所讨论的那样,从 PG 9.0 开始,您可以使用如下命令将所有现有表的权限批量授予用户 u:

GRANT ALL ON ALL TABLES IN SCHEMA public TO u;
Run Code Online (Sandbox Code Playgroud)

以 u 身份登录,您现在可以对预先存在的表 a 执行此操作:

SELECT * FROM a;
Run Code Online (Sandbox Code Playgroud)

但是,如果您现在创建表 b 并执行以下操作:

SELECT * FROM b;
Run Code Online (Sandbox Code Playgroud)

你得到:

ERROR: permission denied for relation b
SQL state: 42501
Run Code Online (Sandbox Code Playgroud)

这可以通过重新执行来解决

GRANT ALL ON ALL TABLES IN SCHEMA public TO u;
Run Code Online (Sandbox Code Playgroud)

但是每次创建表后都必须记住这样做是一个问题。

有没有办法让 PostgreSQL 自动将这些全局授权应用于新创建的表?

~ 提前致谢 ~ 肯

postgresql user-management

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

su: /bin/bash: 资源暂时不可用

无法将用户切换到 postgres。

postgres 用户的 Ulimit 设置设置了合理的限制。我们没有达到最大值。

/var/log/messages 中没有错误。

错误:

BETA -bash-4.2# sudo su - postgres
su: /bin/bash: Resource temporarily unavailable
Run Code Online (Sandbox Code Playgroud)

设置:

BETA -bash-4.2# ps -auxww | grep -i postgr | wc -l
503
BETA -bash-4.2# lsof | grep -i postgr | wc -l
35225
BETA -bash-4.2# 
Run Code Online (Sandbox Code Playgroud)

postgres 进程的 Ulimit。

BETA -bash-4.2# cat /proc/26230/limits 
Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size …
Run Code Online (Sandbox Code Playgroud)

postgresql linux unix su sudo

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

Postgresql 连接超时

当我连接到远程服务器上的 psql 时

>psql -h {hostname}
psql: could not connect to server: Connection timed out (0x0000274C/10060). Is the server running on host "{hostname}" (194.58.98.133) and accepting TCP/IP connections on port 5432?
Run Code Online (Sandbox Code Playgroud)

在服务器上:

netstat -nlp | grep 5432
tcp   0 0 0.0.0.0:5432   0.0.0.0:*  LISTEN  29609/postmaster
tcp        0      0 :::5432  :::*  LISTEN      29609/postmaster
unix  2   [ ACC ]  STREAM   LISTENING 2107633273 29609/postmaster   /tmp/.s.PGSQL.5432
Run Code Online (Sandbox Code Playgroud)

服务器上没有 iptables。ping 服务器成功。

我做错了什么?

postgresql centos database-connection

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

将 PostgreSQL pg_dump 流式传输到 S3

是否可以或建议将 pg_dump 输出流/管道传输到 S3?

我们正在将大型数据集转储到我们的实例中,并且数据库大小很大。因此尝试优化本地磁盘空间(避免转储的临时空间)并直接在 S3 上创建备份。

我们在 Ubuntu 16.04 上有一个 PostgreSQL v9.6.3。

postgresql amazon-s3

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