Vous n'êtes pas identifié(e).
Merci encore grace à ton intervention j'ai résolu mon problème.
Merci beaucoup, mais pour le
psql ..... < /tmp/plop.sql
J'imagine que tous les points sont utiles, mais je n'arrive pas à lancer mon fichier .sql, j'indique le chemin absolu mais il ne trouve pas le fichier... Misère... sos merci
Cette erreur survient habituellement lorsque tu n'as pas démarré le serveur, du moins de mon expérience. Fait :
PostgreSQL start;
Bonjour,
Via psql, en ligne de commande je voudrais créer des tables, le problème est la sélection de la base de donnée, car la création des tables sera un script d'installation dans lequel l'utilisateur n'interviendra pas (mis à part l'indication de son mot de passe).
passer par -d <nom_de_ma_base> entraine l'affichage de m_base=# derrière quoi je peux taper ma requête CREATE TABLE. Mais cela ne convient pas comme je le disais juste au-dessus.
Y-a-t'il un moyen en une seule ligne de commande d'indiquer au serveur la bonne base ? Car là je crée un utilisateur, je crée une base de donnée "maBase" et derrière je lance un -c "CREATE TABLE..." mais le serveur crée la table dans la base "postgres" et pas dans ma base que je viens de créer, comment lui indiquer la bonne base dans la même ligne que la requête CREATE TABLE ? J'ai beau chercher depuis 24h je ne trouve pas...
Merci par avance.
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.
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
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.
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
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
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
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 ??
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
SOS... Un coup de main ? J'avance bien mais il reste juste cette difficulté....
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.
OK, merci l'équipe de maintenance c'est moi d'ici là je m'y connaitrais, notament grace à vous
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.
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.
J'ai reréinstallé... Et c'est bon.... Ca m'inquiète un peu ce dysfonctionnement inexpliqué... maintenant ça marche. Merci
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....
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 il faudrait que je trouve un moyen plus simple et automatique de modifier les autorisations lors de l'installation du serveur.
Merci, ça avance, j'ai trouvé le fichier, j'ai pu l'ouvrir en modifiant ses permissions d'accès, en effet toutes les méthodes étaient en trust, j'ai tout modifié en md5, et... ça ne change rien... connection avec n'importe quel mot de passe...
Alors j'ai vérifié, mes utilisateurs n'ont pas de mot de passe lorsque je double clique sur leur nom... J'ai recréé dans pgadmin un utilisateur avec password='motdepasse', il apparait au rafraichissement dans la liste des roles de connection, mais si je double clique il n'a pas de mot de passe non plus.. J'en met un, je réouvre il n'en a pas ... Je ne comprends plus...
SOS... Comment garder les mots de passe ? Et pour le fichier pg_hba.conf je suis obligé de l'ouvrir manuellement pour le modifier ? Il n'y a pas de requête qui le fait ?
Le seul que je trouve est pg_hba.conf.sample... Il n'y a pas moyen d'accéder à ça via pgadmin3 ou ligne de commande ou encore mieux dans la bibliothèque libpq ?
Merci
Le soucis est que je ne vois pas comment changer les autorisations...
Je pensais que je créerais un utilisateur avec mot de passe une base de donnée avec comme propriétaire cet utilisateur, et que seul lui y aurait accès et bien sûr après son identification avec mot de passe, rine de plus logique. C'est incompréhensible que ça ne fonctionne pas comme cela... C'est pour ça que j'imagine que par défaut postgres est en trust, ou qu'il y a un réglage à faire que je ne connais pas...
J'ai beau lire la doc je ne vois pas, est-ce réellement normal que postgre par défaut ne tienne pas compte des mots de passe des propriétaires des bases... Pas très sécurisé... D'où la suspicion de mode trust actif mais je ne trouve pas comment vérifier cela ni comment le modifier...
SOS...
Merci pour ta réponse, oui j'ai parcouru la doc, mais je suis un peu largué, après réflexion, je pense comprendre que lors de son installation postgre est en trust pour pouvoir accéder la première fois via l'utilisateur par défaut postgres sans mot de passe. Mais je ne vois pas comment modifier cet état.
De plus comme l'utilisateur postgres a visiblement un mot de passe je pense qu'il faut que je le modifie avant de quitter "l'état" trust. Ai-je raison ?
Donc comment arrivé à modifier cet état ? Je retourne dans la doc...
Là je sèche, tout fonctionne maintenant sauf que par défaut postgre ne tient pas compte des mots de passe, je cré un utilisateur avec mot de passe, je me connecte via ce user sans mot de passe, et ça marche...
Une base avec un owner utilsateurX et l'utilisateur postgre par défaut y accède sans problème... J'ai beau lire la doc je ne comprends pas pourquoi il n'y a aucun contrôle d'accès, ni aux utilisateurs via leur mot de passe ni à la base...
SOS, je bloque complètement, je pensais que par défaut quand on cré un utilisateur avec mot de passe il faut le donner pour se logger sous cette utilisateur et si une base a un owner, par défaut sans avoir touché aux privilèges seul lui devrait pourvoir accéder à la base... Désolé mais vraiment je ne comprend pas , cela ne me parait pas logique.
Sinon tout fonctionne et à partir des appels de mon projet via libpq, impeccable, sauf cette absence de controle de la part du serveur...
Merci par avance du temps pris à me répondre.