PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 02/12/2008 12:16:39

chaps31
Membre

Les galères du débutants

Suite à "impossible d'exécuter des requêtes sql" je recré un post pour plus de clarté.

Je commence le développement d'une application qui nécessite une base de donnée, si j'ai déjà largement utilisé des bases MySQL sans difficulté je dois avouer qu'avec postgreSQL je vais de problèmes en problèmes, actuellement je ne code plus j'essaie de faire tourner postgres depuis des jours et des jours....

J'ai modifié pg_hba.conf où tout est en trust par défaut (ce qui m'a surpris) et j'ai mis md5, malheureusement malgré cela je pouvais toujours créer un serveur et me connecter sans indiquer les mots de passe de mes utilisateurs.... Mais en redémarrant maintenant j'ai :

could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?


Là je ne comprends plus, j'ai réinstallé postgreSQL (via l'installeur classique en 8.3.0) et toujours pareil... Comment cela se fait-il que d'un coup le serveur ne démarre plus ? Même avec une réinstallation ? Je n'ai rien modifié...

SOS Merci....

Je vois poindre un autre soucis, lorsqu'enfin mon serveur acceptera d'être sécurisé avec mes modif de pg_hba.conf wink   il faudrait que je trouve un moyen plus simple et automatique de modifier les autorisations lors de l'installation du serveur.

Hors ligne

#2 02/12/2008 16:38:32

daamien
damien clochard

Re : Les galères du débutants

A chaque fois que tu modifies e fichier pg_hba.conf tu dois recharger la configuration ou redémarrer le serveur.

Ensuite le message d'erreur que tu donnes n'indique pas forcément que le serveur ne démarre pas. Commence par vérifier la syntaxe de ton fichier pg_hba.conf. Regardes le fichier de log de PostgreSQL pour savoir si il a démarré correctement.

Tu peux enfin nous donner le contenu de ton fichier pg_hba.conf et la commande que tu utilises pour te connecter au serveur. Pour le moment sans plus de précisions, il est difficile de savoir ou se trouve l'erreur. Le contenu du paramètre listen_adressses serait également intéressant

Hors ligne

#3 03/12/2008 10:46:25

chaps31
Membre

Re : Les galères du débutants

J'ai réinstallé postgreSQL donc les fichiers ne sont pas modifiés. En fait je contrôle les actions de mon projet XCode avec pgadminIII, je lance pgadminIII, il y a 0 serveur, je clique sur l'icone de connection (la prise) donne un nom et lance la connection sous l'utilisateur postgres.

J'ai toujours fais comme ça, cela crée un serveur qui porte le nom précisé. Mais là ça ne fonctionne plus j'ai systématiquement ce même message...

Seule explication il y a un fichier auquel je ne pense pas quelque part....

Hors ligne

#4 03/12/2008 11:14:22

chaps31
Membre

Re : Les galères du débutants

J'ai reréinstallé... Et c'est bon.... Ca m'inquiète un peu ce dysfonctionnement inexpliqué... maintenant ça marche. Merci

Hors ligne

#5 03/12/2008 11:29:13

chaps31
Membre

Re : Les galères du débutants

Du coup je reviens avec mes précédents problèmes. Mon projet XCode commence par créer un nouvel utilisateur avec mot de passe, modifie l'utilisateur postgres en lui donnant un mot de passe et cré une base de donnée.

Je vérifie avec pgadminIII le nouvel utilisateur est créé ainsi que la base de donnée, mais comment je peux vérifier si un utilisateur a bien un mot de passe ? Parce-que le problème persiste, lorsque je lance le erveur de test créé, il me demande un mot de passe pour l'utilisateur postgres (je lui en ai mis un normalement, et si je ne rentre rien il lance quand même le serveur...
De même si j'ouvre un 2eme serveur via l'utilisateur nouvellement créé ne pas préciser de mot de passe ne pose aucun problème...

J'ai modifié pg_hba.conf en mettant md5 à la place des trust, ceci via pgadminIII, je ne comprends pas.

Hors ligne

#6 03/12/2008 11:52:13

chaps31
Membre

Re : Les galères du débutants

C'est bon les mots de passe fonctionnent, désolé.

Sinon une question me vient à l'esprit, pensez-vous qu'il soit raisonnable d'avoir un serveur postgreSQL sur un ordi avec un utilisateur qui ne connait rien à l'informatique ? En gros un serveur postgreSQL peut tourner tout seul ?
L'utilisateur final lui ne verra que l'appli qu'il utilise et qui se sert de la base.

Dernière modification par chaps31 (03/12/2008 12:01:05)

Hors ligne

#7 04/12/2008 00:16:38

gleu
Administrateur

Re : Les galères du débutants

Oui, c'est possible. À condition d'avoir une équipe de maintenance qui s'y connaît.


Guillaume.

Hors ligne

#8 04/12/2008 10:54:36

chaps31
Membre

Re : Les galères du débutants

OK, merci l'équipe de maintenance c'est moi wink d'ici là je m'y connaitrais, notament grace à vous wink

Hors ligne

#9 06/12/2008 12:20:24

chaps31
Membre

Re : Les galères du débutants

Les choses avancent, mais il reste 2 soucis, un premier lié à mon état de débutant amateur à qui il manque les bases basiques... et le deuxième que je ne comprends toujours pas.

- Je suis étonné que pgadminIII me permette de créer des serveurs en veux-tu en voilà, je pensais qu'en installant Postgres j'avais un serveur de base de donnée sur lequel je créais des utilisateurs et des BDD, cette notion de création de serveurs me perturbe, j'ai du mal à l'appréhender. En plus je cré des utilisateurs et BDD via mon projet xcode et pour vérifier je lance pgadminIII, il faut que je cré un serveur pour accéder aux utilisateurs et à ma BDD, je pensais qu'il fallait un serveur pour créer de utilisateurs et une BDD... Une explication sur ces bases pour un débutant ?

- Donc via pgadmin III je cré des serveurs de test, les supprime, puis recré pour vérifier que mon projet fait ce qu'il faut et parfois (comme en ce moment) je ne peux plus créer de serveurs, j'ai un message me disant "impossible de se connecter au serveur no such file or directory...". Là il me manque les bases je suis paumé. Pourquoi d'un coup cette impossibilité ? Et je croyais que les serveurs je les créais avec pgadminIII, l'erreur actuelle survient lors de la tentative de création d'un serveur de test...

Je serais très reconnaissant à celui qui pourra m'expliquer tout ça... Merci par avance.

Hors ligne

#10 07/12/2008 12:59:23

chaps31
Membre

Re : Les galères du débutants

SOS... Un coup de main ? J'avance bien mais il reste juste cette difficulté....

Hors ligne

#11 07/12/2008 18:17:48

chaps31
Membre

Re : Les galères du débutants

Bon j'éclaircis le problème, à partir du moment où je touche au fichier pg_hba.conf le serveur ne démarre plus !! Pire si je garde une copie de ce même fichier non modifié, au chaud dans un coin de mon disque, et que je le remet dans le dossier data, idem, toujours la même erreur :

could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?


De toute manière le "manager" ne veut plus lancer le serveur, là je ne comprends plus... On doit modifier ce fichier pour quitter le mode trust mais dès que je le touche tout est définitivement planté !!! Je précise que j'ai juste remplacé trust par md5 et de toute manière replacé le fichier non modifié après et idem le serveur ne démarre plus... SOS

Hors ligne

#12 07/12/2008 23:58:20

gleu
Administrateur

Re : Les galères du débutants

pgAdmin III ne permet pas de créer un serveur. Il permet d'enregistrer un ou plusieurs serveurs. Enregistrer dans le sens où il peut conserver l'emplacement (adresse IP, alias) dans un fichier de configuration. Une fois un serveur enregistré, tu peux lui ajouter des bases de données, y accéder, créer des utilisateurs, etc.

Pour le reste, très difficile de savoir ce qu'il se passe sans plus d'infos.


Guillaume.

Hors ligne

#13 08/12/2008 11:04:32

chaps31
Membre

Re : Les galères du débutants

OK, oublions pgAdmin III. Mon projet au premier lancement cré un nuvel utilisateur avec mot de passe cré une base de donnée et enfin cré un mot de passe pour le user "postgres", ça fonctionne sans problème.
Sous Mac os X (qui est un Unix) il existe un package d'installation tout prêt que j'ai utilisé pour postgresSQL 8.3.0.

Ce qui pose problème c'est dès que je touche à pg_hba.conf.
Partout il est écrit que pour sécuriser c'est dans ce fichier que tout se passe. en effet je le lis et donc comme indiqué partout je modifie "trust" par "md5", et à partir de là si je relance mon projet, et là, plus de connection au serveur. Le fait de modifier ce fichier bloque toute connection au serveur, il ne s'agit pas d'un problème de mot de passe, de toute manière si je remet tout en trust le problème reste le même. D'ailleurs comme je l'expliquais, avant de toucher au fichier j'en ai fais une sauvegarde intacte. Lorsque je replace cette sauvegarde ça ne change rien c'est assez incroyable, seul solution réinstaller postgreSQL

Je me suis dis que ça venais peut-être du fait d'ouvrir les autorisation d'accès Unix au dossier data, mais en modifiant juste les autorisations sans toucher au fichier ça ne bug pas. Est-ce que la modification de ce fichier entraine la modification d'un autre ??

Hors ligne

#14 08/12/2008 19:23:43

gleu
Administrateur

Re : Les galères du débutants

Si en modifiant ce fichier puis en supprimant tes modifications, tu n'arrives plus à redémarrer le serveur, c'est que tu as mal modifié ce fichier. Le coup du remplacement du fichier m'étonne énormément, tu dois te tromper quelque part. Mais ça va être très difficile de savoir ce qu'il se passe sans avoir accès à la machine. Les autorisations Unix n'ont rien à voir dans tout ça (sauf si tu interdis à l'utilisateur postgres de lire le fichier pg_hba.conf).


Guillaume.

Hors ligne

#15 09/12/2008 11:18:11

chaps31
Membre

Re : Les galères du débutants

Dans le pg_hba.conf, je ne fais que modifier les "trust" en "md5". Lorsque je fais cette manip, il y a d'autres colonnes à modifier obligatoirement ?

Je ne change que le trust, ce qui donne ça :

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               md5
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5

Dernière modification par chaps31 (09/12/2008 11:26:59)

Hors ligne

#16 09/12/2008 11:53:56

chaps31
Membre

Re : Les galères du débutants

Je viens de faire une manip assez troublante.... Je vais finir par croire qu'il existe une poupée vaudou quelque part à mon nom...

- La fenêtre du répertoire "data" est ouverte, je déplace pg_hba.conf sur le bureau. Plus de fichier pg_hba.conf dans "data" le serveur ne démarre plus, ok.

- Je remet le fichier pg_hba.conf sans y avoir touché. OK le serveur redémarre.

- Je le remet sur le bureau (donc l'enlève de "data"), le duplique, j'en fais une copie, apparait d'ailleurs cette copie sur le bureau avec "-copie". Je place cette copie dans le dossier "data" et renomme en pg_hba.conf, sans "-copie" : plus de démarage du serveur !!!! C'est excatement le même fichier je ne l'ai pas modifié !!!

- J'enlève cette copie remet l'original (bien que les 2 fichiers soient rigoureusement identiques) et ... le serveur remarche !!!

Argh.. Je deviens fou là ??? Quelqu'un a une idée de génie ?? Merci

Hors ligne

#17 09/12/2008 14:03:24

chaps31
Membre

Re : Les galères du débutants

Problème résolu, pour une raison mystérieuse lors de la modification du fichier  Mac os X enlève l'accès à l'utilisateur postgres et le remplace par une autorisation admin, ce qui au passage en fait 2...

Merci beaucoup  à gleu pour toutes ses réponses

Hors ligne

#18 09/12/2008 18:45:14

chaps31
Membre

Re : Les galères du débutants

Une dernière galère pour la route... Maintenant à coup de chmod chown et autre sed, quelques lignes de commandes et postgreSQL est sécurisé par contre je me heurte à un nouveau problème qu me suprend, j'ai à nouveau le message d'erreur de serveur injoignable via pgadiminIII ou mon projet, il faut que je lance le serveur via ServiceManager une application qui ne fait que ça lancer et couper le serveur, afin que tout fonctionne le serveur ne se lance pas seul lorsqu'il reçoit une requête, via gadminIII ou un PQconnectdb de la bibliothèque C de postgreSQL...

Quelle est la commande pour lancer et couper le serveur ? Merci, cela m'évitera de passer par ServiceManager, j'ai beau chercher je ne trouve pas.

Hors ligne

#19 10/12/2008 13:02:50

gleu
Administrateur

Re : Les galères du débutants

Je ne sais pas si je comprends bien. Au lancement du serveur physique, il faut lancer le serveur PostgreSQL. Mais une fois qu'il est lancé, il n'y a plus rien à faire jusqu'au prochaine démarrage de la machine.


Guillaume.

Hors ligne

#20 11/12/2008 11:19:21

chaps31
Membre

Re : Les galères du débutants

J'ai résolu le problème, tout simplement en ligne de commande avec postgreSQL start.

Je me heurte encore à un autre soucis, je vois le bout du tunnel mais il reste quelques écueils... J'installe postgreSQL et je modifie le fichier pg_hba.conf pour mettre les accès en md5 et là gros problème... je ne peux plus accéder... Je pensais que postgres l'utilisateur par défaut n'avait pas de mot de passe, mais une fois le md5 activé (et le serveur redémarré), si je ne rentre pas de mot de passe pour l'utilisateur postgres l'accès m'est refusé, alors qu'il n'en a pas, et d'ailleurs je veux accéder pour lui en donner un (et créer un autre utilisateur et une base de données...).

SOS.

Je me suis dit que je pouvais créer l'utilisateur et modifier postgres avant d'activer le md5, ceci avec psql -c, mais visiblement il faut dans cette ligne de commande que je précise le nom de la base de donnée... Je n'ai pas trouvé la syntaxe pour le faire à la suite de psql -c et je ne sais pas laquelle indiquer pour les utilisateurs, template01 ?
Mais est-ce normal que, même en ayant activé le md5, je ne puisse accéder à un utilisateur sans mot de passe (postgres en l'occurence, si comme je le pense il n'a pas de mot de passe par défaut).

Merci

Hors ligne

#21 11/12/2008 13:41:39

chaps31
Membre

Re : Les galères du débutants

Bon j'ai résolu avec la création des users avant d'activer le md5, ça reste étrange mais bon j'ai une olution.

Hors ligne

#22 07/01/2009 00:26:24

KrysKool
Administrateur

Re : Les galères du débutants

Lut

chaps31 a écrit :

Bon j'ai résolu avec la création des users avant d'activer le md5, ça reste étrange mais bon j'ai une olution.

le mode trust permet aux utilisateurs de se connecter sans mot de passe, donc lorsque tu met md5 c'est normal qu'a la prochaine connexion il te demande un mot de passe

par défaut l'utilisateur postgres n'a pas de mot de passe donc impossible de s'y connecter si md5, par contre si tu as trust ou ident sameuser y'a pas de soucis, sachant que trust est fortement déconseillé et ne sert qu'a vérifier que l'on arrive bien a se connecter.
Sous les Unix/Linux tu devrait laisser la ligne commençant par local à ident sameuser et les lignes commençant par host avec md5

ainsi pour fixer un mot de passe à l'utilisateur postgres il faut passer en root puis ensuite en utilsateur postgres

$ sudo su -
# su - postgres
$ psql
# ensuite une fois connecté en sous psql executer la commande ci dessous
ALTER USER postgres ENCRYPTED PASSWORD 'toto';

Ainsi il sera possible de se connecter à la base via pgadmin3.


Christophe Chauvet
Directeur Technique
Sylëam Info Services
Mon site

Hors ligne

Pied de page des forums