2017-10-10 4 views
2

Je ne comprends pas comment Postgres fonctionne avec OpenBSD. Je n'ai pas eu ces problèmes avec debian (je n'ai pas à faire l'initdb).Postgresql & OpenBSD première connexion

Je fis comme suivre

pkg_add postgresql-server php-pgsql 
su - _postgresql 
initdb -D /var/postgresql/data -U postgres - E UTF8 -A md5 -W 

Mais après cela, je n'ai pas le résultat que j'attends

je peux commencer à la base de données avec

pg_ctl -D /var/postgresql/data/ -l logfile start 

ou avec

rcctl enable postgresql 
rcctl start postgresql 

Mais je ne comprennent pas comment s'y connecter

Parce que si je fais:

# su - _postgresql   
$ psql 
Password: 
psql: FATAL: password authentication failed for user "_postgresql" 

Pourquoi est l'utilisateur _postgresql et non Postgres? Quel mot de passe dois-je utiliser?

C'est le pg_hba.conf, j'ai changé la fin,

# TYPE DATABASE  USER   ADDRESS     METHOD 
# "local" is for Unix domain socket connections only 
local all    all          trust 
# IPv4 local connections: 
host all    all    127.0.0.1/32    
password 
# IPv6 local connections: 
host all    all    ::1/128     md5 

Donc, avec cela, je pense, je suis, mais je connecter un nouveau Probleme, il y a vraiment quelque chose que je ne comprends pas

$ pg_ctl -D /var/postgresql/data/ -l logfile stop 
waiting for server to shut down.... done 
server stopped 
$ pg_ctl -D /var/postgresql/data/ -l logfile start 
server starting 
$ psql 
psql: FATAL: role "_postgresql" does not exist 

grâce

+0

Parce que le nom d'utilisateur (unix-) a un nom principal rscore, le nom d'utilisateur postgres ne le fait pas. Si vous ne fournissez pas de nom d'utilisateur, psql suppose que vous voulez utiliser votre nom d'utilisateur unix. 'psql -U postgres' fera probablement ce que vous voulez. – wildplasser

+0

Merci! C'est bon! Je verrai plus demain –

Répondre

2

Ainsi, le cas normal lorsqu'un créer une nouvelle base de données est

Wi th l'utilisateur

su - _postgresql 


initdb -D /var/postgresql/data -U postgres -k -E UTF8 -A md5 -W 

et vous devez choisir un mot de passe

Démarrer la base de données

pg_ctl -D /var/postgresql/data/ -l logfile start 

Et vous pouvez facilement connecter avec

psql -U postgres 

Mais si elle n'a pas travail, je suppose que j'ai fait une erreur avec le mot de passe

Avec l'utilisateur

su - _postgresql 

d'abord je dois changer le ph_hba.conf à faire confiance

# TYPE DATABASE  USER   ADDRESS     METHOD 
# "local" is for Unix domain socket connections only 
local all    all          trust 

quand je commence à la base de données avec

pg_ctl -D /var/postgresql/data/ -l logfile start 

Je peux vous connecter avec l'utilisateur postgres

psql -U postgres 

Et changer finaly le mot de passe

ALTER USER postgres WITH PASSWORD '123'; 

N'oublie pas le "; »À la fin!

Modifier le fichier pg_hba.conf Tout d'abord je dois changer le mot de passe ph_hba.conf (ou peut-être MD5)

# TYPE DATABASE  USER   ADDRESS     METHOD 
# "local" is for Unix domain socket connections only 
local all    all         password 

et redémarrez

pg_ctl -D /var/postgresql/data/ -l logfile stop 
pg_ctl -D /var/postgresql/data/ -l logfile start 

Et je peux enfin vous connecter correctement

psql -U postgres