J'ai récemment la dernière version d'ubuntu et je n'y suis pas encore habitué. J'ai eu plusieurs problèmes de connexion postgresql avec pgadmin3.
J'ai essayé de suivre plusieurs tutoriels pour créer un serveur localhost que je peux utiliser dans pgadmin3. Je n'ai pas vraiment atteint mon objectif et je pense que j'ai aggravé la situation en installant, en désinstallant, en installant, en désinstallant, en essayant les réponses trouvées ... À ce stade, je ne suis pas sûr que mon postgres soit propre. Il est possible que deux postgres soient installés. Encore une fois, je ne suis pas sûr. J'ai essayé de le désinstaller, mais j'ai eu une erreur qui disait que postgres n'était pas dans Sudo.
Le problème, c’est que cette erreur liée à l’exécution de psql s’exécute dans la console:
$psql
psql: FATAL: role "user" does not exist
Je ne trouve pas le pg_hba.conf
et, à ce stade, j'ai trop peur d'aggraver la situation en essayant de suivre d'autres publications.
Comment pourrais-je faire ce travail?
Comme indiqué dans les commentaires, votre fichier pg_hba.conf semble correct.
Habituellement, la base de données s’exécutera en tant qu’utilisateur postgres (cochez ps aux | grep postgres
pour connaître le nom d’utilisateur sous lequel postgres est en cours d’exécution).
Connectez-vous en tant qu'utilisateur, par exemple Sudo su - postgres
, puis créez un utilisateur correspondant à votre compte d'utilisateur Ubuntu normal (createuser username
), puis créez une base de données portant le même nom et définissez le propriétaire (-O
) sur cet utilisateur, comme suit: createdb -O username username
). .
Cela devrait permettre à l'appel psql
de fonctionner et que pgadmin - aussi longtemps que vous le démarrez en tant qu'utilisateur par défaut, nom d'utilisateur - devrait également fonctionner.
Edit: Par défaut, psql
utilisera votre nom d'utilisateur Linux comme valeur par défaut pour le nom de la base de données et le nom de la base de données. Vous pouvez remplacer le nom d'utilisateur à l'aide de -U someotherusername
et vous connecter à une autre base de données en ajoutant ce nom de base de données à la ligne de commande, tel que psql someotherdbname
. Vous pouvez également trouver psql -l
utile pour répertorier les bases de données existantes.
Sudo -u postgres createuser user
peut vous aider à créer un nouvel utilisateur avec tous les privilèges de postgres
Utilisez l'utilisateur postgres:
Sudo su postgres
puis utilisez psql.
Si vous rencontrez toujours des problèmes, vérifiez ce lien: Erreur PostgreSQL: Fatal: le rôle "nom d'utilisateur" n'existe pas
Dans Windows 10 cela fonctionne pour bien
pg_restore --format = c --verbose --no-owner --no-privilèges --dbname = MYDB --username = postgres --no-password --jobs = 8 F: /MYBK.backup
--username = (rôle) et --no-password sont des nécéssaires