Я только что установил postgresql и указал пароль x во время установки. Когда я пытаюсь сделать createdb
и указать любой пароль, я получаю сообщение:
createb: не удалось подключиться к базе данных postgres: FATAL: аутентификация по паролю не удалась для пользователя
То же самое для createuser
.
Как мне начать? Могу ли я добавить себя в качестве пользователя в базу данных?
linux
database
postgresql
configuration
Рохит Банга
источник
источник
postgres
пользователя. ЭтоSU
PostgreSQL, и он открывает вас для атак на логин против него. Создайте другого суперпользователя и зарезервируйте для заблокированныхpostgres
администраторов UNIX права root.Ответы:
Другие ответы не совсем удовлетворяли меня. Вот что сработало для postgresql-9.1 на Xubuntu 12.04.1 LTS.
Подключитесь к базе данных по умолчанию с помощью пользователя postgres:
Установите пароль для пользователя postgres, затем выйдите из psql (Ctrl-D):
Отредактируйте
pg_hba.conf
файл:и измените «peer» на «md5» в строке, касающейся postgres:
Чтобы узнать, какую версию postgresql вы используете, найдите папку с версиями в
/etc/postgresql
. Также вы можете использовать Nano или другой редактор вместо VIM.Перезапустите базу данных:
(Здесь вы можете проверить, сработало ли это
psql -U postgres
).Создайте пользователя с тем же именем, что и у вас (чтобы его найти, вы можете набрать
whoami
):Опции сообщают postgresql о создании пользователя, который может войти в систему, создавать базы данных, создавать новые роли, является суперпользователем и будет иметь зашифрованный пароль. Действительно важными являются -P -E, поэтому вас попросят ввести пароль, который будет зашифрован, и -d, чтобы вы могли сделать это
createdb
.Остерегайтесь паролей : сначала он дважды спросит у вас новый пароль (для нового пользователя), затем повторите, а затем один раз пароль postgres (тот, который указан на шаге 2).
Снова отредактируйте
pg_hba.conf
файл (см. Шаг 3 выше) и измените «peer» на «md5» в строке, касающейся «всех» других пользователей:Перезапустите (как в шаге 4) и убедитесь, что вы можете войти без -U postgres:
Обратите внимание, что если вы выполните простое действие
psql
, произойдет сбой, поскольку он попытается подключить вас к базе данных по умолчанию, имеющей то же имя, что и вы (то естьwhoami
). template1 - это база данных администратора, которая находится здесь с самого начала.Теперь
createdb <dbname>
должно работать.источник
pg_hba.conf
должна быть первой строкой, в противном случае она может игнорироваться из-за других правил (pgsql 9.3.5 на F21). Мне потребовалось некоторое время, чтобы понять это, что некомментирование и изменение уже закомментированных строк для пользователя postgresql просто не сработает.local all all peer
пункт 3, на который я теперь изменилсяmd5
. ОК?Под Linux PostgresQL обычно настраивается так, чтобы пользователь root мог войти в систему как суперпользователь postgres
postgres
из оболочки (console или ssh).Тогда вы просто создадите новую базу данных как обычно:
Это должно работать, не касаясь
pg_hba.conf
. Если вы хотите иметь возможность сделать это с помощью какого-либо инструмента с графическим интерфейсом по сети - тогда вам придется возиться сpg_hba.conf
.источник
psql: FATAL: Peer authentication failed for user "postgres"
даже с sudo.psql -d mydatatabase -U myuser
.Это мое решение:
источник
sudo bash
.Есть два метода, которые вы можете использовать. Оба требуют создания пользователя и базы данных.
Используя createuser и creatb ,
Использование команд администрирования SQL и соединение с паролем через TCP
И затем в оболочке PSQL
Тогда вы можете войти,
Если вы не знаете порт, вы всегда можете получить его, выполнив от имени
postgres
пользователя следующую команду :Или,
Sidenote:
postgres
пользовательЯ предлагаю НЕ изменять
postgres
пользователя.postgres
. Вы должны иметь root, чтобы пройти аутентификацию какpostgres
.postgres
которая является эквивалентом PostgreSQL SQL ServerSA
, необходимо иметь доступ на запись к базовым файлам данных. И это означает, что вы все равно можете разрушить хаос.источник
sudo -u postgres createuser -U postgres -d -e -E -l -P -r -s $(whoami)
-s
делает пользователя суперпользователем.РЕДАКТИРОВАТЬ: Предупреждение: Пожалуйста, прочитайте ответ, отправленный Эван Кэрролл . Похоже, что это решение не безопасно и не рекомендуется.
Это работало для меня в стандартной 64-битной установке Ubuntu 14.04 .
Я следовал инструкциям с небольшими изменениями, которые я нашел в http://suite.opengeo.org/4.1/dataadmin/pgGettingStarted/firstconnect.html
sudo apt-get install postgresql
sudo –u postgres psql postgres
\password postgres
\q
#Database administrative login by Unix domain socket local all postgres peer
Для того, чтобы:
#Database administrative login by Unix domain socket local all postgres md5
sudo service postgresql restart
sudo –u postgres createdb mytestdb
psql –U postgres –W
\l
источник
postgres
пользователя плохой идеей. stackoverflow.com/a/41604969/124486источник
Возможно, вам нужно обновить ваш
pg_hba.conf
файл. Этот файл определяет, какие пользователи могут войти с каких IP-адресов. Я думаю, что пользователь postgres довольно заблокирован по умолчанию.источник
/var/lib/pgsql/data/pg_hba.conf
. Изменитеident
наtrust
forhost
(иlocal
если вы используете ssh).Если вы используете macOS, как я, у вас может не быть пользователя postgres.
При попытке запустить
sudo -u postgres psql
я получаю ошибкуsudo: unknown user: postgres
К счастью, есть исполняемые файлы, которые предоставляет postgres.
Тогда я смог получить доступ
psql
без проблем.Если вы создаете новый экземпляр postgres с нуля, вот шаги, которые я предпринял. Я использовал порт не по умолчанию, чтобы я мог запустить два экземпляра.
Затем я отредактировал
/var/postgres/var-10-local/postgresql.conf
с моим предпочтительным портом, 5433.Готово!
источник
В MacOS я следовал приведенным ниже шагам, чтобы заставить его работать.
Впервые после установки получите имя пользователя системы.
Теперь, когда вы вошли в систему, и вы можете создать БД.
источник
Просто перейдите в каталог вашей инсталляции и запустите этот файл "pg_env.bat", после чего перейдите в папку bin и выполните pgAdmin.exe. Это должно работать без сомнения!
источник