所以,正如我在过去的问题中提到的那样,我把数据库移到了新的服务器上,但是旧的代码无法访问数据库。 查询错误,如果有帮助:
Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: password authentication failed for user someuser
现在,我已经在线阅读,我是否认为这需要修改pg_hba.conf文件。 但! 我找不到这个文件。 我的数据库集群存储在/var/lib/postgresql/9.0,但是那里没有pg_hba文件! 有人可能已经将它从默认目录中移走,并将其存储在谁在哪里。
所以,我的问题是,我可以通过编辑pg_hba文件来修复用户未authentication的问题(我曾经想过,当你做了一个pg_dump并恢复数据库,authentication的用户会来,但也许这是错的),如果我需要访问pg_hba文件,我怎么find它?
如果有帮助,我正在使用Ubuntu。 谢谢你的一切。
是的,你需要从旧的数据库服务器的pg_hba.conf文件。 转储和恢复数据库不会复制这个文件; 它所做的就是转储并恢复表结构和数据。
pg_hba.conf文件应位于数据目录下; 在默认安装(至less在SuSE上)这将是/var/lib/pgsql/data/pg_hba.conf。 在你的我认为这将是/var/lib/postgresql/9.0/pg_hba.conf
你也将要确保抓住旧的postgresql.conf,并把它放在/var/lib/postgresql/9.0。
你可以跑
find/ -name pg_hba.conf
在整个文件系统中search名为pg_hba.conf的文件
放置这个文件后,你必须重新加载Postgres才能生效。
/etc/init.d/postgresql重新加载