psql:致命的:用户“expman”的对等身份验证失败
-
21-12-2019 - |
题
我正在尝试从备份恢复数据库,但无法连接到 postgresql
.
namespace :db do
task import: :environment do
import_path = "~/backups"
sql_file = "PostgreSQL.sql"
database_config = Rails.configuration.database_configuration[Rails.env]
system "psql --username=#{database_config['username']} -no-password # {database_config['database']} < #{import_path}/#{sql_file}"
end
end
我尝试改变 pg_hba.conf
文件(与 md5 同等)。在控制台中,我对超级用户尝试了同样的操作 postgres
, ,但仍然失败。
顺便说一句,有谁知道恢复数据库的更好方法吗?我用了备用宝石。
编辑:我重新启动了postgresql服务器并通过了身份验证。但是,没有恢复数据库。我恢复了文件中的更改,并将 -h localhost 添加到 psql 命令中。数据库现已恢复。我现在得到的唯一错误是:
must be owner of extension plpgsql //and
no privileges could be revoked for "public"
解决方案
- 更改 pg_hba.conf 后,您应该重新加载或向 postmaster pid 发送 SIGHUP 信号。以便应用更改。
- 为什么不使用 psql -f 来执行备份sql文件?
或者您可以使用 pg_dump 备份和 pg_restore 恢复。或复制命令备份和恢复。喜欢 :
digoal=# copy tbl_join_1 to '/home/pg93/tbl_join_1.dmp'; COPY 10 digoal=# delete from tbl_join_1; DELETE 10 digoal=# copy tbl_join_1 from '/home/pg93/tbl_join_1.dmp'; COPY 10
或者
pg93@db-172-16-3-150-> pg_dump -f ./tbl_join_1.dmp -t tbl_join_1 pg93@db-172-16-3-150-> psql psql (9.3.3) Type "help" for help. digoal=# drop table tbl_join_1; DROP TABLE digoal=# \q pg93@db-172-16-3-150-> psql -f ./tbl_join_1.dmp SET SET SET SET SET SET SET SET SET CREATE TABLE ALTER TABLE ALTER TABLE
不隶属于 StackOverflow