Vous n'êtes pas identifié(e).
J’essaie de démarrer ma base avec la ligne de commande ci après:
pg_ctl start -N "postgresql-8.4" -D "C:/Program Files/PostgreSQL/8.4/data" -w
Et j'ai le message d'erreur suivante :
En attente du démarrage du serveur...2010-04-26 18:03:52 MSDFATAL: n'a pas pu créer le journal applicatif « pg_log/postgresql-2010-04-26_180352.log » : Permission denied
Pourtant, j'ai déjà créé un utilisateur postgres et qui a le contrôle total sur le dossier pg_log.
Est-ce que quelqu'un peut m'aider ?
Hors ligne
Il vous dit le contraire. À moins que le service n'indique pas l'utilisateur postgres, mais ce serait étonnant. Essayez de créer un fichier dans pg_log en tant qu'utilisateur postgres, histoire de voir si vous obtenez un message d'erreur.
Guillaume.
Hors ligne
Ce qui est étonnant c'est lorsque je démarre le service postgresql-8.4 via services.msc il n'y a pas de message d'erreur, cependant dans la propriété de ce service postgresql-8.4 sur le libellé Chemin d'accès des fichiers exécutables j'ai :
C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe runservice -N "postgresql-8.4" -D "C:/Program Files/PostgreSQL/8.4/data" -w
Et le fichier log postgresql-2010-04-27_152300.log a été créé dans le path C:\Program Files\PostgreSQL\8.4\data\pg_log.
Est-ce que cela ne signifie-t-il pas que postgres a accès a ce path ?
Hors ligne
Oui, s'il a accepté de démarrer ainsi, c'est qu'il a accès avec tous les droits à ce répertoire.
Ce que cela signifie surtout, c'est que l'option start ne peut pas être utilisé en tant qu'utilisateur lambda. Il faut être postgres pour utiliser cette option. Et dans les autres cas, il faut utiliser l'option runservice car cette dernière exécute le service, qui lui-même est configuré pour utiliser l'utilisateur postgres.
Guillaume.
Hors ligne
Mon but était de créer un script de sauvegarde à froid.
- arrêt de la base
- copie des fichiers data dans un autre serveur
- démarrage de la base
Lors de l'arrêt je ne spécifie par l'utilisateur postgres et il 'n y pas d'erreur, le service s'arrête correctement.
"C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe" stop -N "postgresql-8.4" -D "C:/Program Files/PostgreSQL/8.4/data" -m fast -w
xcopy "C:\Program Files\PostgreSQL\8.4\data" "\\serveur\C$\data"
J'ai ajouté donc dans mon ligne de commande sur le démarrage l'utilisateur.
"C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe" start -N "postgresql-8.4" -U postgres -P postgres -D "C:/Program Files/PostgreSQL/8.4/data" -w
Mais l'erreur persiste toujours
en attente du démarrage du serveur...2010-04-26 18:03:52 MSDFATAL: n'a pas pu créer le journal applicatif « pg_log/postgresql-2010-04-26_180352.log » : Permission denied
Est ce qu'il y pas d'autre commande qui permet de démarrer la base à part pg_ctl ?
Hors ligne
Vous feriez mieux d'utiliser la commande sc pour diriger le service avec les options start et stop. Je n'ai pas de Windows sous la main mais la syntaxe exacte doit être facile à trouver avec un Windows sous la main.
Guillaume.
Hors ligne
j'ai fait :
sc start "postgresql-8.4"
Ca démarre maintenant.
Merci pour votre aide.
Hors ligne