Как мне войти в систему и пройти аутентификацию в Postgresql после новой установки?

Сделал новую установку Postgres 8.4 на Mint Ubuntu. Как мне создать пользователя для postgres и войти в систему с помощью psql?

Когда я набираю psql, он просто говорит мне

psql: FATAL: Ident authentication failed for user "my-ubuntu-username"

7 ответов

Решение

Есть два метода, которые вы можете использовать. Оба требуют создания пользователя и базы данных.

  1. Используя createuser и creatb,

    $ sudo -u postgres createuser -s $USER
    $ createdb mydatabase
    $ psql -d mydatabase
    
  2. Использование команд администрирования SQL и соединение с паролем через TCP

    $ sudo -u postgres psql postgres
    

    И затем в оболочке PSQL

    CREATE ROLE myuser LOGIN PASSWORD 'mypass';
    CREATE DATABASE mydatabase WITH OWNER = myuser;
    

    Тогда вы можете войти,

    $ psql -h localhost -d mydatabase -U myuser -p <port>
    

    Если вы не знаете порт, вы всегда можете получить его, выполнив следующую команду, так как postgres пользователь,

    SHOW port;
    

    Или же,

    $ grep "port =" /etc/postgresql/*/main/postgresql.conf
    

Sidenote: postgres пользователь

Я предлагаю НЕ изменять postgres пользователь.

  1. Обычно он заблокирован от ОС. Никто не должен "входить" в операционную систему как postgres, Вы должны иметь root для аутентификации как postgres,
  2. Обычно он не защищен паролем и делегируется операционной системе хоста. Это хорошая вещь. Это обычно означает для того, чтобы войти как postgres который является PostgreSQL эквивалентом SQL Server SAВы должны иметь доступ на запись к основным файлам данных. И это означает, что вы в любом случае можете разрушить хаос.
  3. Если этот параметр отключен, вы устраняете риск атаки методом грубой силы через именованного суперпользователя. Сокрытие и скрытие имени суперпользователя имеет свои преимущества.

По умолчанию вам нужно использовать пользователя postgres:

sudo -u postgres psql postgres

Ошибка, которую вы получаете, заключается в том, что your-ubuntu-username не является действительным пользователем Postgres.

Вы должны указать psql, какое имя пользователя базы данных использовать

psql -U postgres

Вам также может понадобиться указать базу данных для подключения к

psql -U postgres -d <dbname>

Основное различие между входом в систему с пользователем postgres или любым другим пользователем, созданным нами, заключается в том, что при использовании пользователя postgres НЕ нужно указывать хост с -h и вместо этого для другого пользователя if.

Войти с пользователем postgres

$ psql -U postgres 

Создание и вход с другим пользователем

# CREATE ROLE usertest LOGIN PASSWORD 'pwtest';
# CREATE DATABASE dbtest WITH OWNER = usertest;
# SHOW port;
# \q

$ psql -h localhost -d dbtest -U usertest -p 5432

GL

Источник

Вы также можете подключиться к базе данных как "обычный" пользователь (не postgres):

postgres=# \connect opensim Opensim_Tester localhost;

Password for user Opensim_Tester:    

You are now connected to database "opensim" as user "Opensim_Tester" on host "localhost" at port "5432"

Если ваш клиент базы данных соединяется с TCP/IP, и в вашем файле pg_hba.conf настроена аутентификация идентификатора, проверьте, что у вас установлен и работает идент. Это обязательно, даже если у вас есть только локальные клиенты, подключающиеся к "localhost".

Также имейте в виду, что в настоящее время для идентификации можно использовать IPv6, чтобы Postgresql мог принимать клиентов, подключающихся к локальному хосту.

С помощью этой команды ниже каждый может войти в PostgreSQL сразу после установки. * База данных по умолчанию postgresиспользуется:

      psql -U postgres

Вам нужно поставить пароль после выполнения команды выше :

      Password for user postgres:
Другие вопросы по тегам