Utilisateur Postgres n'existe pas?
Je viens d'installer Postgres et ont été bricoler avec elle et différentes configurations de 1 à 2 heures.
Je suis coincé sur étant pas en mesure de changer à la postgres-utilisateur
$ su - postgres
génère l'erreur suivante: su: unknown login: postgres
$ sudo -u postgres psql
génère l'erreur suivante: sudo: unknown user: postgres
Ces tentatives sont faites que l'utilisateur normal. Les essayer en tant que root a les mêmes résultats. J'ai installé postgres via Homebrew sur OS X, et j'ai lu les instructions plusieurs fois.
- Etes-vous en essayant de lancer psql?
- Eh bien oui, je veux courir comme le bon
postgres
de l'utilisateur. - Sur certains Mac OS X saveurs, avec certaines méthodes d'installation, je pense que l'utilisateur est créé comme
postgres_
à la place. Note de fuite trait de soulignement. Aussi, êtes-vous sûr (ou l'installation)effectivement créé l'instance PostgreSQL et a commencé à la base de données? - J'étais trop impossible de passer à
postgres
de l'utilisateur. Résolu le problème après l'installation depostgresql-server
paquet.
Vous devez vous connecter pour publier un commentaire.
psql
: Connecte moi avec mon nom d'utilisateur par défautpsql -U postgres
: Journaux de moi en tant qu'utilisateur postgresSudo ne semble pas être nécessaire pour moi.
J'utilise Postgres.app pour mes OS X base de données postgres. Elle a enlevé le mal de tête de s'assurer que l'installation a été de travail et le serveur de base de données a été lancé correctement. Découvrez-le ici: http://postgresapp.com
Edit: Crédit à @Erwin Brandstetter pour la correction de mes utiliser des arguments.
psql postgres
a fonctionné pour moipsql
est le nom de base de données, pas le nom d'utilisateur. Il y a une base de données nommée "postgres" dans chaque installation par défaut (l'entretien DB). C'est la DBpsql
journaux par défaut. Cette réponse est totalement trompeuse! Ce que vous voulez vraiment estpsql -U postgres
Le manuel: postgresql.org/docs/current/interactive/app-psql.html Typique des installations par défaut de l'authentification d'hôte sans donner de nom d'utilisateur, vos deux exemples connecter à la DB avec le nom de l'utilisateur de l'OS.psql postgres
etpsql -d postgres
.OS X tend vers préfixe du système des noms de compte avec "_"; vous ne dites pas quelle version d'OS X que vous utilisez, mais au moins en 10.8 et 10.9 la _postgres utilisateur existe dans une installation par défaut. Notez que vous ne serez pas en mesure de
su
à ce compte (sauf la racine), car elle n'a pas un mot de passe.sudo -u _postgres
, d'autre part, devrait fonctionner correctement.Par
psql --help
, lorsque vous n'avez pas de définir des options de nom de base de données (sans-d
option), il serait de votre nom d'utilisateur, si vous n'avez pas-U
, la base de données nom d'utilisateur est votre nom d'utilisateur trop, etc.Mais par
initdb
(pour créer la première base de données) commande il n'a pas votre nom d'utilisateur comme tout nom de base de données. Il dispose d'une base de données nomméepostgres
. La première base de données est toujours créé par la commande initdb lorsque la zone de stockage des données est initialisée. Cette base de données est appelée postgres.Donc, si vous n'avez pas d'autre base de données nommée votre nom d'utilisateur, vous devez faire
psql -d postgres
pour psql commande fonctionne. Et il semble que ça donne-d
option par défaut,psql postgres
fonctionne également.Si vous avez créé une base de données des noms de la même chose à votre nom d'utilisateur, (il faut le faire avec
createdb
), alors vous pouvez commandepsql
seulement. Et il semble que la première base de données nom d'utilisateur définit comme votre nom d'utilisateur de la machine par infusion.ou,
fonctionne par défaut.
la discussion et réponse ici était extrêmement utile pour moi:
psql: FATAL: base de données "<utilisateur>" n'existe pas
A bien fonctionné pour moi dans le cas de db nom: postgres & nom d'utilisateur: postgres. Si vous n'avez pas besoin d'écrire sudo.
Et, dans le cas d'autres db, vous pouvez essayer
Comme il est donné dans Postgres aider:
$ psql -U postgres
génère une sortiepsql: FATAL: role "postgres" does not exist
, maispsql postgres
œuvres.- Je obtenir exactement les mêmes erreurs que kryshah avec
su - postgres
etsudo -u postgres psql
.DanielM réponse donne aussi des erreurs.
Des sorties mauvais paramètres
Répondent cependant à partir de przbabu commentaire.
Je pense que la partie de ce problème peut être propriétaire des paramètres dans OSX
mais cela
sudo chown -R postgres:staff /Users/postgres
donnechown: invalid user: ‘postgres:staff’
.En bref, ce n'est pas la solution au problème.
Utiliser les outils fournis par l'installation de postgres pour créer un utilisateur et une base de données.
Pour obtenir le droit de paramètres et de sorties
Il y a des commandes spécifiques après postgres d'installation pour ajouter un nouvel utilisateur à la base de données du système.
Après initdb, exécutez la procédure suivante décrit ici
Pour éviter la demande de mot de passe tout le temps, vous avez trois choix comme décrit ici.
La solution est simple:
connecter en tant que root
et après: