Не может получить разрешение выполнять pg_dumpall

Все, что я пытаюсь сделать, скопировать мой существующий кластер баз данных для обновления от Postgresql 9.4.8 к 9,5. Я нахожусь на Ubuntu 16.04.

Я знаю об этом сообщении: сбои аутентификации по паролю пост-ГРЭС. На самом деле это было уже отмечено с прошлого раза, когда у меня была эта проблема. Я не требую никакого значимого знания пост-ГРЭС. Я не всегда получаю то, что, как предполагается, является командой psql и что, как предполагается, является командой удара и блогами и что не я видел, не всегда ясно дают понять мне. PG является просто моим бэкендом для моих проектов Django. Я, конечно, не понимаю, как у меня есть эта проблема снова.

Мой пользователь Ubuntu является malikarumi. У меня есть два пользователя пост-ГРЭС, maikarumi и пост-ГРЭС. Пост-ГРЭС является суперпользователем. Я пытался сделать malikarumi суперпользователем также некоторое время назад, но это, по-видимому, перестало работать и не, я не знаю почему.

Вот моя первая попытка сегодня:

malikarumi@Tetuoan2:~$ pg_dumpall > 9-4-backup
pg_dumpall: query failed: ERROR:  permission denied for relation pg_authid
pg_dumpall: query was: SELECT oid, rolname, rolsuper, rolinherit,rolcreaterole, rolcreatedb, rolcanlogin, rolconnlimit, rolpassword, rolvaliduntil, rolreplication, pg_catalog.shobj_description(oid, 'pg_authid') as rolcomment, rolname = current_user AS is_current_user FROM pg_authid ORDER BY 2

Это прибыло затем:

malikarumi@Tetuoan2:~$ pg_dumpall > 9-4-backup -U postgres
Password: 

Не отметьте там ничего, никакой справки, никакой признак что не так или что делать с этим.

Password: 
Password: 
pg_dump: [archiver (db)] connection to database "esselldb" failed: FATAL:  password authentication failed for user "postgres"
pg_dumpall: pg_dump failed on database "esselldb", exiting

Затем я попробовал еще раз с пустым паролем и точкой с запятой

malikarumi@Tetuoan2:~$ pg_dumpall > 9-4-backup -U postgres;
Password: 
pg_dumpall: could not connect to database "template1": fe_sendauth: no password supplied

Отметьте работы пароля psql

malikarumi@Tetuoan2:~$ psql -U postgres
Password for user postgres: Note the password works with psql
psql (9.4.8)
Type "help" for help.

Но команда не делает, с или без точки с запятой

postgres=# pg_dumpall > 9-4-backup
postgres-# pg_dumpall > 9-4-backup;
ERROR:  syntax error at or near "pg_dumpall"
LINE 1: pg_dumpall > 9-4-backup

Это работает

malikarumi@Tetuoan2:/etc/postgresql/9.4/main$ sudo cat pg_hba.conf
[sudo] password for malikarumi: 

По-видимому, это - пользователь UNIX, не пользователь базы данных. Но это и всегда было, тот же пароль.

Я изменил это

# Database administrative login by Unix domain socket
local   all             postgres                                md5

взаимодействовать, как предложено в предшествующем сообщении (снова - как это могло возвратиться?!)

Но я не мог перезапустить пост-ГРЭС

malikarumi@Tetuoan2:/etc/postgresql/9.4/main$ pg_ctl stop
pg_ctl: command not found
malikarumi@Tetuoan2:/etc/postgresql/9.4/main$ cd ~
malikarumi@Tetuoan2:~$ pg_ctl stop
pg_ctl: command not found

Это не работало от psql также

postgres=# pg_ctl stop
postgres-# pg_ctl stop;
ERROR:  syntax error at or near "pg_ctl"
LINE 1: pg_ctl stop
        ^
postgres=# 

Но по крайней мере psql все еще впускает меня....

Таким образом, я перезагрузил целую машину и попробовал еще раз. Вы знаете то, что произошло

malikarumi@Tetuoan2:~$ pg_dumpall > 9-4-backup -U postgres
pg_dumpall: could not connect to database "template1": FATAL:  Peer authentication failed for user "postgres"   

Таким образом, я действительно успешно изменял его, но я все еще не могу заставить это работать.Примечание: Это НЕ попросило у меня моего пароля!

Затем я попробовал это

malikarumi@Tetuoan2:~$ su postgres
Password: the right one
su: Authentication failure
malikarumi@Tetuoan2:~$ su postgres
Password: a blank one
su: Authentication failure

И теперь Вы актуальны. BTW, я много раз был к официальным документам пост-ГРЭС и нахожу их плотными и едва понятными. Если бы Вы также знаете о хорошем основном учебном руководстве для не человека дб как я, который был бы услужлив.Спасибо.

1
задан 13 April 2017 в 15:24

1 ответ

Все упомянутые отказы, как ожидают, произойдут, даны контекст, за исключением того, что один:

malikarumi@Tetuoan2:~$ pg_dumpall > 9-4-backup -U postgres
Password: 

Здесь Вы сообщаете об отказе, но в другой ситуации ниже:

malikarumi@Tetuoan2:~$ psql -U postgres
Password for user postgres: Note the password works with psql

Вы сообщаете об успехе.

, Но это не складывает. Тот же пароль должен работать точно также на pg_dumpall в точном контексте, который Вы упоминаете, это:

  • подлинная схема установлена на md5 в pg_hba.conf (перед изменением ее в остальной части сообщения).
  • целевой пользователь базы данных является пост-ГРЭС через -U postgres опция.
  • команду называют оболочкой от Вашего собственного пользователя UNIX malikarumi.
<час>

после успешного изменения подлинной схемы на peer (последняя часть вопроса) что идет не так, как надо, то, что Вы пробуете su вместо того, чтобы использовать sudo, последнее существо рекомендуемый метод на Ubuntu.

Использование эта команда при приглашении оболочки:

malikarumi@Tetuoan2:~$ sudo -u postgres pg_dumpall >9-4-backup

Это попросит пароль, отображая что-то как:

[sudo] password for malikarumi:

Примечание, которое это ожидает Ваш пароль , то же, которое Вы используете при открытии сессии под эти malikarumi имя, в противоположность паролю пост-ГРЭС или паролю базы данных.

sudo -u postgres somepostgrescommand просто вариант sudo someadmincommand, Вам разрешают сделать, если Вы - администратор этой рабочей станции Ubuntu.

0
ответ дан 8 December 2019 в 08:59

Другие вопросы по тегам:

Похожие вопросы: