Je viens d'installer Postgres et j'ai bricolé avec lui et diverses configurations pendant 1 à 2 heures.
Je suis bloqué sur l' impossibilité de passer à l'utilisateur postgres
$ su - postgres
renvoie l'erreur suivante: su: unknown login: postgres
$ sudo -u postgres psql
renvoie l'erreur suivante: sudo: unknown user: postgres
Ces tentatives sont effectuées en tant qu'utilisateur normal. Les essayer en tant que root a exactement les mêmes résultats. J'ai installé postgres via Homebrew sur OS X et j'ai lu les instructions plusieurs fois.
macos
postgresql
Krystah
la source
la source
postgres
qu'utilisateur approprié .postgres_
place. Notez le trait de soulignement de fin. De plus, êtes-vous sûr que vous (ou l'installateur) avez réellement créé l'instance PostgreSQL et démarré la base de données?postgres
utilisateur. Résolution du problème après l'installation dupostgresql-server
package.Réponses:
psql
: Me connecte avec mon nom d'utilisateur par défautpsql -U postgres
: Me connecte en tant qu'utilisateur postgresSudo ne semble pas nécessaire pour moi.
J'utilise Postgres.app pour ma base de données postgres OS X. Cela a éliminé le mal de tête de s'assurer que l'installation fonctionnait et que le serveur de base de données était correctement lancé. Découvrez-le ici: http://postgresapp.com
Edit: Merci à @Erwin Brandstetter pour avoir corrigé mon utilisation des arguments.
la source
psql postgres
etpsql -d postgres
.Par
psql --help
, lorsque vous n'avez pas défini d'options pour le nom de la base de données (sans-d
option), ce serait votre nom d'utilisateur, si vous ne l'avez pas fait-U
, le nom d'utilisateur de la base de données serait également votre nom d'utilisateur, etc.Mais par la commande
initdb
(pour créer la première base de données), il n'a pas votre nom d'utilisateur comme nom de base de données. Il a une base de données nomméepostgres
. La première base de données est toujours créée par la commande initdb lorsque la zone de stockage de données est initialisée. Cette base de données s'appelle postgres.Donc, si vous n'avez pas d'autre base de données nommée votre nom d'utilisateur, vous devez le faire
psql -d postgres
pour que la commande psql fonctionne. Et il semble que cela donne une-d
option par défaut,psql postgres
fonctionne également.Si vous avez créé une autre base de données dont le nom est identique à votre nom d'utilisateur, (cela devrait être fait avec
createdb
), vous ne pouvez commanderpsql
que. Et il semble que le premier nom d'utilisateur de la base de données soit défini comme nom d'utilisateur de votre machine par brassage.ou,
fonctionnerait par défaut.
la source
OS X a tendance à préfixer les noms de compte système par "_"; vous ne dites pas quelle version d'OS X vous utilisez, mais au moins dans 10.8 et 10.9 l'utilisateur _postgres existe dans une installation par défaut. Notez que vous ne pourrez pas accéder
su
à ce compte (sauf en tant que root), car il n'a pas de mot de passe.sudo -u _postgres
, d'autre part, devrait fonctionner correctement.la source
la discussion et la réponse ici m'ont été extrêmement utiles:
psql: FATAL: la base de données "<utilisateur>" n'existe pas
la source
A bien fonctionné pour moi en cas de nom de base de données: postgres & nom d'utilisateur: postgres. Vous n'avez donc pas besoin d'écrire sudo.
Et dans le cas d'une autre base de données, vous pouvez essayer
Comme indiqué dans l'aide de Postgres:
la source
$ psql -U postgres
génère une sortiepsql: FATAL: role "postgres" does not exist
, maispsql postgres
fonctionne.J'obtiens exactement les mêmes erreurs que kryshah avec
su - postgres
etsudo -u postgres psql
. La réponse de DanielM donne également des erreurs.Sorties lorsque de mauvais paramètres
Réponse cependant du commentaire de przbabu.
Je pense qu'une partie de ce problème peut être dans les paramètres du propriétaire dans OSX
mais faire
sudo chown -R postgres:staff /Users/postgres
donnechown: invalid user: ‘postgres:staff’
.Bref, ce n'est pas la solution du problème. Utilisez les outils fournis par l'installation de postgres pour créer un utilisateur et une base de données.
Pour obtenir les bons réglages et sorties
Il existe des commandes spécifiques après l'installation de postgres pour ajouter un nouvel utilisateur au système de base de données. Après initdb, exécutez ce qui suit comme décrit ici
Pour éviter la demande de mot de passe à tout moment, vous avez trois choix comme décrit ici .
la source
Pour moi, c'était la solution sur macOS Réinstallez le psql
Démarrer le serveur PostgreSQL
Initialiser DB
Si cette commande génère une erreur, rm l'ancien fichier de base de données et réexécutez la commande ci-dessus
Créer une nouvelle base de données
Vous serez connecté à cette base de données et pourrez créer un utilisateur ici pour vous connecter
la source
La solution est simple:
connectez-vous en tant que root
et après:
la source