Я настраиваю свой PostgreSQL 9.1. Я ничего не могу сделать с PostgreSQL: не createdb
могу, не могу createuser
; все операции возвращают сообщение об ошибке
Fatal: role h9uest does not exist
h9uest
это имя моей учетной записи, и я sudo apt-get install
PostgreSQL 9.1 под этой учетной записью.
Подобная ошибка сохраняется для root
учетной записи.
postgresql
authentication
h9uest
источник
источник
FATAL: role "user" is not permitted to log in
, проверить dba.stackexchange.com/questions/57723/... для этого.role doesn't exist
И ошибку,can't create role, it already exists
проверьте этот ответ: stackoverflow.com/a/56658832/1689770Ответы:
Используйте пользователя операционной системы
postgres
для создания вашей базы данных - если вы не настроили роль базы данных с необходимыми привилегиями, соответствующими пользователю вашей операционной системы с тем же именем (h9uest
в вашем случае):Как рекомендуется здесь или здесь .
Тогда попробуйте еще раз. Введите,
exit
когда закончите с работой в качестве системного пользователяpostgres
.Или выполнить одну команду ,
createuser
какpostgres
сsudo
, как продемонстрировано Дреес в другом ответе.Смысл в том, чтобы использовать пользователя операционной системы, совпадающего с ролью базы данных с тем же именем, для предоставления доступа через
ident
аутентификацию .postgres
пользователь операционной системы по умолчанию, инициализировавший кластер базы данных. Руководство:Я слышал о странных настройках с нестандартными именами пользователей или о том, где пользователь операционной системы не существует. Вам нужно будет адаптировать свою стратегию там.
Читайте о ролях базы данных и аутентификации клиента в руководстве.
источник
sudo etc
как пользователь postgres ... Как установить программу? Смотрите эту проблему установки S2geometry .su postgres
.sudo -u postgres
не работает, аsudo -u postgres -i
работает! Что делает-i
флаг?su
, но основанная на привилегиях sudo. Смman sudo
.После попытки решения многих других людей, но безуспешно, этот ответ, наконец, помог мне.
https://stackoverflow.com/a/16974197/2433309
Короче бегом
создает роль с именем owning_user (в данном случае h9uest). После этого вы можете запускать
rake db:create
из терминала под любым именем учетной записи, которое вы настроили, не входя в среду Postgres.источник
-s
, и не нужно было использоватьsudo -u postgres
(простоcreateuser new_user
работал нормально)psql: FATAL: role "jonny" does not exist
Хорошо,sudo -u postgres -s createuser jonny
тогда почемуcreateuser: creation of new role failed: ERROR: role "jonny" already exists
создание роли в pgsql с привилегией «superuser»
Затем создайте пользователя
Назначить привилегию пользователю
А затем включите вход в систему этого пользователя, чтобы вы могли запустить, например
psql template1
, из обычного$
терминала:источник
CREATE ROLE username superuser createdb login;
объединяет все три шага ...sudo -u postgres createuser --superuser $USER; sudo -u postgres createdb $USER
#GRANT postgres TO username
Установка postgres с использованием
apt-get
не создает роли пользователя или базы данных.Чтобы создать роль суперпользователя и базу данных для вашей личной учетной записи пользователя:
sudo -u postgres createuser -s $(whoami); createdb $(whoami)
источник
sudo -u postgres createdb $(whoami)
-s
флага в первой команде), вы можете создать базу данных как вы сами. Вам не нужно будет запускатьcreatedb
какpostgres
.Это работает для меня:
источник
postgres
(проверено в Linux и Windows).role postgres does not exist
Метод работы,
vi /etc/postgresql/9.3/main/pg_hba.conf
local all postgres peer
здесь изменить пэр в довериезапустить снова,
sudo service postgresql restart
теперь попробуй,
psql -U postgres
источник
trust
метод рекомендуется только в полностью защищенной среде. Хотя доступ из ненадежных соединений возможен, никогда не подвергайте свой кластер БД таким образом.pg_hba.conf
Для версии Postgres 9.5 используйте следующую команду:
Надеюсь, это поможет.
источник
источник
psql postgres
результаты:psql: FATAL: role "root" does not exist
psql postgres -U postgres
? Зависит от пользователя (-U) у вас есть.В приглашении локального пользователя, а не в приглашении root, введите
Затем введите пароль для локального пользователя.
Затем введите предыдущую команду, которая сгенерировала «роль« имя пользователя »не существует».
Вышеуказанные шаги решили проблему для меня. Если нет, отправьте сообщения терминала для вышеуказанных шагов.
источник
Я установил его на macOS и должен был:
Вот источник: https://github.com/PostgresApp/PostgresApp/issues/313#issuecomment-192461641
источник
Создание кластера БД вручную решило проблему в моем случае.
По какой-то причине, когда я установил postgres, «исходная БД» не была создана. Выполнение
initdb
сделало трюк для меня.Это решение представлено в PostgreSQL Wiki - Первые шаги :
источник
Для пользователей Windows :
psql -U postgres
Вы должны увидеть интерфейс командной строки для PostgreSQL:
postgres=#
источник
Выполните эти шаги, и это будет работать для вас:
msfconsole
db_connect user:pass@host:port.../database
извините, я ее не помню, но вот так она заменяет пользователя и пароль, а также хост и базу данных информацией, включеннойdatabase.yml
в положение. :/usr/share/metasploit-framework/config
msfconsole: msf>db_status
вы увидите, что он подключен.источник
сбросить и восстановить с
--no-owner --no-privileges
флагаминапример
сбросить -
pg_dump --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname > /tmp/full.dump
восстановить -
pg_restore --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname /tmp/full.dump
источник