Jak skonfigurować postgresql po raz pierwszy?

Właśnie zainstalowałem postgresql i podczas instalacji podałem hasło X. Kiedy próbuję zrobić createdb i podać jakieś hasło dostaję komunikat:

Createdb: nie można połączyć się z bazą danych postgres: FATAL: hasło uwierzytelnianie nie powiodło się dla użytkownika

To samo dla createuser.

Jak zacząć? Czy Mogę dodać siebie jako użytkownika do bazy danych?
Author: Léo Léopold Hertz 준영, 2009-09-24

10 answers

Inne odpowiedzi nie były dla mnie całkowicie satysfakcjonujące. Oto, co działało dla postgresql-9.1 na Xubuntu 12.04.1 LTS.

  1. Połącz się z domyślną bazą danych za pomocą użytkownika postgres:

    Sudo-u Postgres PSQL template1

  2. Ustaw hasło dla użytkownika postgres, a następnie zakończ psql (Ctrl-D):

    Zmiana postgres użytkownika z zaszyfrowanym hasłem 'xxxxxxx';

  3. Edytuj plik pg_hba.conf:

    Sudo vim / etc / postgresql/9.1/main / pg_hba.conf

    I zmienić "peer" na " md5 " w linii dotyczącej postgres:

    Local all postgres peer md5

    Aby dowiedzieć się, jakiej wersji postgresql używasz, poszukaj folderu Wersja W /etc/postgresql. Możesz również użyć Nano lub innego edytora zamiast Vima.

  4. Uruchom ponownie bazę danych:

    Sudo /etc / init.d / postgresql restart

    (Tutaj możesz sprawdzić, czy działa z psql -U postgres).

  5. Utworzyć użytkownika o tej samej nazwie co ty (aby go znaleźć, możesz wpisać whoami):

    Sudo createuser - u postgres-d-e-E-l-P-r-s <my_name>

    Opcje mówią postgresqlowi, aby stworzył użytkownika, który może się zalogować, tworzyć bazy danych, tworzyć nowe role, jest superużytkownikiem i będzie miał zaszyfrowane hasło. Naprawdę ważne są-P-E, tak, że zostaniesz poproszony o wpisanie hasło, które zostanie zaszyfrowane, i-d, dzięki czemu można zrobić createdb.

    Uwaga na hasła: najpierw zapyta Cię dwukrotnie o nowe hasło( dla nowego użytkownika), powtórzone, a następnie raz o hasło postgres (to określone w Kroku 2).

  6. Ponownie Edytuj plik pg_hba.conf (zobacz krok 3 powyżej) i zmień "peer" na "md5"w wierszu dotyczącym "wszystkich" innych użytkowników:

    Wszystkie lokalne Wszystkie peer md5

  7. Uruchom ponownie (jak w kroku 4) i sprawdź, czy możesz się zalogować bez-u postgres:

    Psql template1

    Zauważ, że jeśli wykonasz zwykły psql, nie powiedzie się, ponieważ spróbuje połączyć cię z domyślną bazą danych o tej samej nazwie co Ty (np. whoami). template1 to baza danych administratora, która jest tutaj od samego początku.

  8. Teraz powinno zadziałać.

 335
Author: Manur,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-01-14 17:44:51

Pod Linuksem PostgresQL jest zwykle skonfigurowany tak, aby umożliwić użytkownikowi root zalogowanie się jako superuser postgres postgres z powłoki (console lub SSH).

$ psql -U postgres

Wtedy jak zwykle tworzysz nową bazę danych:

CREATE ROLE myuser LOGIN password 'secret';
CREATE DATABASE mydatabase ENCODING 'UTF8' OWNER myuser;

To powinno działać bez dotykania pg_hba.conf. Jeśli chcesz być w stanie to zrobić za pomocą jakiegoś narzędzia GUI przez sieć-wtedy będziesz musiał zadzierać z pg_hba.conf.

 57
Author: Oliver Weichhold,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-04 17:21:58

To jest moje rozwiązanie:

su root
su postgres
psql
 21
Author: Admdebian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-23 08:07:06

Są dwie metody, których możesz użyć. Oba wymagają utworzenia użytkownika i bazy danych.

  1. Korzystanie z createuser i createdb ,

    $ sudo -u postgres createuser --superuser $USER
    $ createdb mydatabase
    $ psql -d mydatabase
    
  2. Korzystanie z poleceń administracyjnych SQL i łączenie się z hasłem przez TCP

    $ sudo -u postgres psql postgres
    

    A następnie w powłoce psql

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

    Wtedy możesz się zalogować,

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

    Jeśli nie znasz portu, zawsze możesz go uzyskać, uruchamiając następujące, jako postgres użytkownik,

    SHOW port;
    

    Lub

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

Sidenote: the postgres user

Sugeruję nie modyfikowanie postgres użytkownika.

  1. jest normalnie zablokowany z systemu operacyjnego. Nikt nie powinien" logować się " do systemu operacyjnego jako postgres. Powinieneś mieć roota, aby uzyskać uwierzytelnienie jako postgres.
  2. zwykle nie jest chroniony hasłem i deleguje się do systemu operacyjnego hosta. To jest dobra rzecz. Zwykle oznacza to, że w celu zalogowania w As postgres, który jest odpowiednikiem PostgreSQL SA SQL Server, musisz mieć dostęp do zapisu podstawowych plików danych. A to oznacza, że normalnie i tak mógłbyś zniszczyć spustoszenie.
  3. [[18]}utrzymując to wyłączone, usuwasz ryzyko ataku brute force poprzez nazwanego super-użytkownika. Ukrywanie i zaciemnianie nazwy superużytkownika ma swoje zalety.
 20
Author: Evan Carroll,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-20 08:12:38

EDIT: Warning: Please, read the answer posted by Evan Carroll. Wydaje się, że takie rozwiązanie nie jest bezpieczne i niewskazane.

To działało dla mnie w standardowej instalacji Ubuntu 14.04 64 bity .

Postępowałem zgodnie z instrukcjami, z małymi modyfikacjami, które znalazłem w http://suite.opengeo.org/4.1/dataadmin/pgGettingStarted/firstconnect.html

  1. zainstaluj postgreSQL (jeśli nie jest jeszcze w Twoim maszyna):

sudo apt-get install postgresql

  1. Uruchom psql używając użytkownika postgres

sudo –u postgres psql postgres

  1. Ustaw nowe hasło dla użytkownika postgres:

\password postgres

  1. Exit psql

\q

  1. Edytuj /etc / postgresql/9.3/main / pg_hba.conf i zmiana:

#Database administrative login by Unix domain socket local all postgres peer

Do:

#Database administrative login by Unix domain socket local all postgres md5

  1. Restart postgreSQL:

sudo service postgresql restart

  1. Utwórz nową bazę danych

sudo –u postgres createdb mytestdb

  1. Uruchom psql ponownie z użytkownikiem postgres:

psql –U postgres –W

  1. lista istniejących baz danych (twoja nowa baza danych powinna już tam być):

\l

 16
Author: Robert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-19 21:31:03
Note: textdb is the database which you are going to explore with 'alex' user 

root@kalilinux:~# sudo su - postgres 
postgres=#  psql   
postgres=#  create database testdb;
postgres=#  create user alex with password 'alex';
postgres=# GRANT ALL PRIVILEGES ON DATABASE testdb TO alex;`enter code here`
 4
Author: Suman Astani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-18 03:01:35

Prawdopodobnie musisz zaktualizować swój pg_hba.conf Plik. Ten plik kontroluje, co użytkownicy mogą logować się z jakich adresów IP. Myślę, że użytkownik postgres jest domyślnie zablokowany.

 3
Author: Neall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-24 13:13:56

Jeśli używasz macOS tak jak ja, możesz nie mieć użytkownika postgres.

Podczas próby uruchomienia sudo -u postgres psql otrzymywałem błąd sudo: unknown user: postgres

Na szczęście istnieją pliki wykonywalne, które zapewnia postgres.

createuser -D /var/postgres/var-10-local --superuser --username=nick
createdb --owner=nick

Wtedy byłem w stanie uzyskać dostęp psql bez problemów.

psql
psql (10.2)
Type "help" for help.

nick=#

Jeśli tworzysz nową instancję postgres od zera, oto kroki, które podjąłem. Użyłem domyślnego portu, więc mogłem uruchomić dwie instancje.

mkdir /var/postgres/var-10-local
pg_ctl init -D /var/postgres/var-10-local

Potem edytowałem {[7] } z moim preferowanym port, 5433.

/Applications/Postgres.app/Contents/Versions/10/bin/postgres -D /Users/nick/Library/Application\ Support/Postgres/var-10-local -p 5433

createuser -D /var/postgres/var-10-local --superuser --username=nick --port=5433
createdb --owner=nick --port=5433
Zrobione!
 3
Author: Nick Woodhams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-21 10:28:57

W systemie MacOS wykonałem poniższe kroki, aby to działało.

Po raz pierwszy, po instalacji, uzyskaj nazwę użytkownika systemu.

$ cd ~
$ pwd
/Users/someuser
$ psql -d postgres -U someuser

Teraz, gdy zalogowałeś się do systemu, możesz utworzyć DB.

postgres=# create database mydb;
CREATE DATABASE
postgres=# create user myuser with encrypted password 'pass123';
CREATE ROLE
postgres=# grant all privileges on database mydb to myuser;
GRANT
 3
Author: SuperNova,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-01-25 16:13:46

Po prostu przejdź do katalogu instalacji i uruchom ten plik " pg_env.bat", więc po przejściu na folder bin i wykonaniu pgAdmin.exe. To musi działać bez wątpienia!

 0
Author: Wellington Ribeiro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-08 00:52:05