psql:致命:用户“expman”的对等身份验证失败

时间:2014-04-11 08:06:03

标签: postgresql backup restore rake-task

我正在尝试从备份恢复数据库,但无法连接到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文件(peer to md5)。 在控制台中,我和超级用户postgres尝试了同样的事情,但它仍然失败。

BTW,有没有人知道恢复数据库的更好方法?我使用了备用宝石。

编辑: 我重新启动了postgresql服务器并通过了身份验证。但是,没有恢复数据库。我还原了文件中的更改,只是将-h localhost添加到psql命令中。数据库现在恢复。我现在唯一的错误是:

must be owner of extension plpgsql //and
no privileges could be revoked for "public"

1 个答案:

答案 0 :(得分:1)

  1. 更改pg_hba.conf后,您重新加载或向postmaster pid发送SIGHUP信号。以便适应变化。
  2. 为什么不使用psql -f来执行备份sql文件?
  3. 或者您可以使用pg_dump backup和pg_restore 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
    

    OR

    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