无法删除staging_database:#

时间:2014-09-05 20:08:32

标签: postgresql ssl

对于我正在使用的系统,当我尝试删除数据库并重新创建它时,我会遇到标题上粘贴的问题。更具体地说,这是我面临的确切问题:

Couldn't drop staging_databse : #<PG::ConnectionBad: FATAL: no pg_hba.conf entry for host xxx.xx.xxxx.xxx, user "ruby", database "postgres", SSL off

我已经就此问题做了一些研究,似乎解决方案只是打开SSL。我已经在pg_hba.conf上查阅了Postgresql文档,但是我找不到这个配置文件。

我输入了post postgresql,我注意到系统上安装了postgresql-client-9.2。根据我的确定,我找不到这个pg_hba.conf文件,因为客户端没有。我还根据官方文档在SSL上查找了postgresql.conf文件,但也没有包含此文件。

最后,文档向我展示了pgsql 9.2客户端的这个配置选项,如下所示:

libpq reads the system-wide OpenSSL configuration file. By default, 
this file is named openssl.cnf and is located in the directory reported by 
openssl version -d. This default can be overridden by setting environment 
variable OPENSSL_CONF to the name of the desired configuration file.

然而,这也不在我的系统中。我已经运行了linux find命令,这个文件似乎并不存在。我已经没有联盟了,我有一种潜在的怀疑,我忽略了一些非常简单的事情。我可以继续其他任何线索吗?感谢。

1 个答案:

答案 0 :(得分:0)

基于此消息和上下文的其余部分:

  

致命:主机xxx.xx.xxxx.xxx没有pg_hba.conf条目,用户&#34; ruby​​&#34;,数据库&#34; postgres&#34;,SSL关闭

看起来似乎有道理:

  • 您正在连接到您未管理的远程PostgreSQL实例,因为您扮演开发人员的角色,而不是管理员。
  • db管理层尝试连接到名为postgres的数据库,以便删除另一个数据库(staging_database)。这确实是必要的,因为当我们连接数据库时,我们无法删除数据库(实际上,当任何人连接数据库时,数据库都无法删除)。
  • 远程pg_hba.conf建立的管理员策略使得您的登录名和IP地址不允许连接到名为postgres的数据库

这些事实结合在一起意味着您错过了删除数据库的必要权利,即使是间接的。

此时您想将问题提交给负责该PostgreSQL服务器的管理员。