对于我正在使用的系统,当我尝试删除数据库并重新创建它时,我会遇到标题上粘贴的问题。更具体地说,这是我面临的确切问题:
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命令,这个文件似乎并不存在。我已经没有联盟了,我有一种潜在的怀疑,我忽略了一些非常简单的事情。我可以继续其他任何线索吗?感谢。
答案 0 :(得分:0)
基于此消息和上下文的其余部分:
致命:主机xxx.xx.xxxx.xxx没有pg_hba.conf条目,用户&#34; ruby&#34;,数据库&#34; postgres&#34;,SSL关闭
看起来似乎有道理:
postgres
的数据库,以便删除另一个数据库(staging_database
)。这确实是必要的,因为当我们连接数据库时,我们无法删除数据库(实际上,当任何人连接数据库时,数据库都无法删除)。pg_hba.conf
建立的管理员策略使得您的登录名和IP地址不允许连接到名为postgres
的数据库这些事实结合在一起意味着您错过了删除数据库的必要权利,即使是间接的。
此时您想将问题提交给负责该PostgreSQL服务器的管理员。