Была ли установлена новая версия postgres 8.4 на mint ubuntu. Как создать пользователя для postgres и входа с помощью psql?
Когда я печатаю psql, он просто сообщает мне
psql: FATAL: Ident authentication failed for user "my-ubuntu-username"
Была ли установлена новая версия postgres 8.4 на mint ubuntu. Как создать пользователя для postgres и входа с помощью psql?
Когда я печатаю psql, он просто сообщает мне
psql: FATAL: Ident authentication failed for user "my-ubuntu-username"
Есть два метода, которые вы можете использовать. Оба требуют создания пользовательских и базы данных.
По умолчанию psql подключается к базе данных с тем же именем, что и пользователь. Таким образом, существует соглашение, чтобы сделать это "пользовательской базой данных". И нет никаких причин нарушать это соглашение, если вашему пользователю нужна только одна база данных. Мы будем использовать mydatabase
в качестве примера базы данных.
Используя createuser и createb, мы можем явно указать имя базы данных,
$ sudo -u postgres createuser -s $USER
$ createdb mydatabase
$ psql -d mydatabase
Вероятно, вам следует полностью опустить это и разрешить вместо всех команд вводить имя пользователя по умолчанию.
$ sudo -u postgres createuser -s $USER
$ createdb
$ psql
Использование команд администрирования 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
postgres
Я предлагаю НЕ изменять пользователя postgres
.
postgres
. Вы должны иметь root для аутентификации как postgres
.postgres
, который является эквивалентом PostgreSQL для SQL Server SA
, необходимо иметь доступ на запись к базовым файлам данных. И это означает, что вы все равно можете разрушить хаос.по умолчанию вам нужно будет использовать пользователя postgres:
sudo -u postgres psql postgres
Ошибка, которую вы получаете, заключается в том, что ваше имя пользователя ubuntu не является допустимым пользователем Postgres.
Вам нужно указать psql, какое имя пользователя базы данных использовать
psql -U postgres
Вам также может потребоваться указать базу данных для подключения к
psql -U postgres -d <dbname>
вы также можете подключиться к базе данных как "обычный" пользователь (а не 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, и у вас есть идентификатор auth, настроенный в вашем pg_hba.conf, проверьте, что у вас установлен и запущен идентификатор. Это обязательно, даже если у вас есть только локальные клиенты, подключающиеся к "localhost".
Также обратите внимание, что в настоящее время идентификатор может быть включен IPv6 для Postgresql, чтобы приветствовать клиентов, которые подключаются к localhost.
Основное различие между входом в систему с использованием пользователя postgres или любого другого созданного нами пользователя заключается в том, что при использовании пользователя postgres НЕ обязательно указывать хост с помощью -h, а вместо этого для другого пользователя if.
$ 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