2013-02-08 4 views
0

J'utilise mac OS X 10.5.8. J'ai installé PostgreSQL 9.1 (en utilisant un pilote mac dmg) afin de construire une base de données avec python (en utilisant sqlalchemy et psycopg2). Lorsque j'ai essayé pour la première fois de me connecter à PostgreSQL via sqlalchemy, je n'ai pas trouvé de combinaison nom d'utilisateur/mot de passe qui me permettrait de créer un moteur et de me connecter. J'ai essayé de me connecter en tant que superutilisateur avec postgres (qui ne nécessite pas de mot de passe), mais cela n'a pas fonctionné. Je rencontre les mêmes problèmes si j'essaie de me connecter en utilisant le shell SQL (il me faut entrer un mot de passe même si je choisis postgres comme utilisateur) ou sur la ligne de commande en utilisant su postgres.Impossible de se connecter à postgresql en tant qu'utilisateur postgres

Recherche sur Google pour des problèmes similaires, il semble que cela a quelque chose à voir avec le fichier pg_hba.conf, mais je ne peux pas le localiser. Quelqu'un a fait remarquer que sur mac il devrait être dans le dossier Library/PostgreSQL/9.1/data, mais je n'ai pas les droits pour accéder à ce dossier. Taper locate pg_hba.conf dans la ligne de commande ne retourne rien. Si je comprends bien (et je ne suis pas sûr que je n'ai jamais utilisé un serveur de base de données et que je ne suis pas un expert UNIX), le serveur ne me reconnaît pas en tant qu'administrateur ou superutilisateur. Y at-il quelque chose d'extrêmement évident que je ne sais pas sur l'initialisation de PostgreSQL (j'ai cherché dans la documentation pour "commencer" et la configuration post-installation, mais n'ai rien trouvé qui soit évidemment lié à ce problème)? Cela pourrait-il être un problème avec l'installation de PostgreSQL? Puis-je devoir changer quelque chose dans mon environnement?

+0

Il existe plusieurs postgresql pré-emballés pour OSX, et chacun d'entre eux a différentes façons de "démarrer". Une première étape consisterait à identifier quel paquet vous utilisez. Ou au moins d'où vous l'avez téléchargé. –

+0

Merci pour votre réponse. J'ai installé Postgresql 9.1 en utilisant macports, qui l'a installé dans opt/local/lib/postgresql91 et a créé un dossier bin avec psql et un autre fichier exécutable unix. J'ai édité mon .profile pour inclure le chemin au postgresql91/bin et couru la source ~/.profile. echo $ PATH confirme que le chemin est là. Mais quand je tape psql dans la ligne de commande (qui, comme mentionné par depesz est ce que j'ai besoin d'utiliser pour lancer postgresql et pour définir les privilèges et les mots de passe des utilisateurs), je reçois la commande "not found". – user2054545

Répondre

1

Vous devez passer au postgres du compte système. Habituellement, cela est fait en utilisant su - postgres. Si cela ne fonctionne pas, je ne peux pas vous aider car cela ressemble à un problème au niveau du système d'exploitation. Quand vous serez sur le compte système de postgres, vous pouvez éditer pg_hba.conf, et, habituellement, vous pourrez vous connecter à pg, sans mot de passe, en utilisant simplement psql.

Sur certains systèmes, au lieu d'utiliser su, les utilisateurs utilisent sudo, auquel cas vous pouvez essayer sudo su - postgres.

+0

Merci beaucoup. En effet, quand je fais sudo su - postgres, je rentre dans postgres. Où puis-je apprendre quoi faire à partir de là? Mon but est de me connecter à postgres à partir de python et créer et construire une base de données à partir de là. – user2054545

+0

Utilisez psql pour vous connecter à PostgreSQL, définissez des mots de passe (alter user ... avec le mot de passe '...'), puis essayez de vous connecter à partir de votre compte système normal à un compte de base de données. Quand vous l'aurez, vous pouvez utiliser votre application Python/any normalement. –

+0

Eh bien, désolé, mais ce n'est pas un problème PostgreSQL, mais plutôt un problème d'OS. Vous devez avoir un ensemble PATH correct, et je n'ai aucune idée du chemin qui fonctionnera sur Mac. –

Questions connexes