A fait une nouvelle installation de Postgres 8.4 sur Ubuntu à la menthe. Comment créer un utilisateur pour postgres et me connecter en utilisant psql?
Quand je tape psql, ça me dit juste
psql: FATAL: Ident authentication failed for user "my-ubuntu-username"
Il existe deux méthodes que vous pouvez utiliser. Les deux nécessitent la création d'un utilisateur et une base de données.
Par défaut, psql se connecte à la base de données avec le même nom que l'utilisateur. Il y a donc une convention pour faire que la "base de données de l'utilisateur" . Et il n'y a aucune raison de rompre cette convention si votre utilisateur n'a besoin que d'une seule base de données. Nous utiliserons mydatabase
comme exemple de nom de base de données.
En utilisant createuser et createdb, nous pouvons être explicites sur le nom de la base de données,
$ Sudo -u postgres createuser -s $USER
$ createdb mydatabase
$ psql -d mydatabase
Vous devriez probablement omettre cela complètement et laisser à la place toutes les commandes par défaut au nom de l'utilisateur.
$ Sudo -u postgres createuser -s $USER
$ createdb
$ psql
tilisation des commandes d'administration SQL et connexion avec un mot de passe via TCP
$ Sudo -u postgres psql postgres
Et puis, dans le shell psql
CREATE ROLE myuser LOGIN PASSWORD 'mypass';
CREATE DATABASE mydatabase WITH OWNER = myuser;
Ensuite, vous pouvez vous connecter,
$ psql -h localhost -d mydatabase -U myuser -p <port>
Si vous ne connaissez pas le port, vous pouvez toujours l'obtenir en exécutant ce qui suit, en tant qu'utilisateur postgres
,
SHOW port;
Ou,
$ grep "port =" /etc/postgresql/*/main/postgresql.conf
postgres
Je suggère [~ # ~] de ne pas [~ # ~] modifier l'utilisateur postgres
.
postgres
. Vous êtes censé avoir root pour vous authentifier en tant que postgres
.postgres
qui est l'équivalent PostgreSQL du SA
de SQL Server, vous devez avoir un accès en écriture aux fichiers de données sous-jacents. Et, cela signifie que vous pourriez normalement faire des ravages de toute façon.par défaut, vous devrez utiliser l'utilisateur postgres:
Sudo -u postgres psql postgres
L'erreur que vous obtenez est due au fait que votre-nom-d'utilisateur-ubuntu n'est pas un utilisateur Postgres valide.
Vous devez indiquer à psql le nom d'utilisateur de la base de données à utiliser
psql -U postgres
Vous devrez peut-être également spécifier la base de données à laquelle vous connecter
psql -U postgres -d <dbname>
vous pouvez également vous connecter à la base de données en tant qu'utilisateur "normal" (pas 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"
Si votre client de base de données se connecte avec TCP/IP et que vous avez configuré l'authentification ident dans votre pg_hba.conf, vérifiez que vous avez un identd installé et en cours d'exécution. Ceci est obligatoire même si vous n'avez que des clients locaux se connectant à "localhost".
Sachez également que de nos jours, l'identd doit être IPv6 activé pour Postgresql pour accueillir les clients qui se connectent à localhost.