Зробив нову установку postgres 8.4 на монетний двір ubuntu. Як створити користувача для postgres та входу за допомогою psql?
Коли я набираю psql, це просто повідомляє мені
psql: FATAL: Ident authentication failed for user "my-ubuntu-username"
Зробив нову установку postgres 8.4 на монетний двір ubuntu. Як створити користувача для postgres та входу за допомогою psql?
Коли я набираю psql, це просто повідомляє мені
psql: FATAL: Ident authentication failed for user "my-ubuntu-username"
Відповіді:
Є два методи, якими ви можете скористатися. Для обох потрібно створити користувача та базу даних.
За замовчуванням psql підключається до бази даних з тим самим іменем, що і користувач. Отже, існує домовленість, що це "база даних користувача" . І немає жодної причини порушувати цю умову, якщо вашому користувачеві потрібна лише одна база даних. Ми будемо використовувати mydatabase
як приклад назви бази даних.
Використовуючи createuser та createdb , ми можемо чітко вказати ім'я бази даних,
$ 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
, потрібно мати доступ для запису до базових файлів даних. І це означає, що ви в будь-якому випадку могли б зруйнувати хаос.sudo -u postgres psql postgres
? Я розумію, sudo
означає привілей root, -u postgres
означає увійти як користувач postgres
, psql
це команда для підключення postgresql
, але що postgres
робить останнє ?
за замовчуванням вам потрібно буде використовувати користувача postgres:
sudo -u postgres psql postgres
Помилка, яку ви отримуєте, пов’язана з тим, що ваш-ubuntu-username не є дійсним користувачем Postgres.
Вам потрібно сказати psql, яке ім’я користувача бази даних використовувати
psql -U postgres
Вам також може знадобитися вказати базу даних для підключення
psql -U postgres -d <dbname>
psql -U myuser -d mydb
працює ідеально, хоча psql -U myuser
намагається використовувати авторизований аналог, дякую!
Ви також можете підключитися до бази даних як "звичайний" користувач (не 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, і ви встановили ідентифікацію ident у вашому pg_hba.conf, перевірте, чи встановлено та запущено identd. Це обов’язково, навіть якщо у вас є лише місцеві клієнти, які підключаються до "localhost".
Також майте на увазі, що в даний час для idd6 може бути ввімкнено 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