J'ai installé PostgreSQL 9.3 avec succès à partir du référentiel APT sur 2 machines virtuelles exécutant Ubuntu 12.04 et 13.04 ... cependant, je ne parviens pas à l'installer correctement sur ma machine hôte exécutant Ubuntu 12.04.
L'installation (cette fois) semble avoir bien fonctionné, mais il y a peut-être une erreur que je ne comprends pas:
* No PostgreSQL clusters exist; see "man pg_createcluster"
Setting up postgresql-9.3 (9.3.0-2.pgdg12.4+1) ...
Creating new cluster 9.3/main ...
config /etc/postgresql/9.3/main
data /var/lib/postgresql/9.3/main
locale en_US.UTF-8
port 5432
update-alternatives: using /usr/share/postgresql/9.3/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode.
J'essaie donc de m'ajouter en tant qu'utilisateur PostgreSQL, mais j'obtiens ceci:
createuser: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Je ne vois pas PostgreSQL s'exécuter dans le moniteur système, et il n'y a aucun fichier dans le dossier / var / run / postgresql / ... complètement vide.
EDIT: Sur les VM, il y a un fichier dans / var / run / postgresql / appelé 9.3-main.pid
Il n'y a rien dans le fichier journal de la machine hôte situé / var / log / postgresql
Alors ... qu'est-ce qui se passe ici qui ne se passe pas dans mes VM? Comme je l'ai dit, les autres installations sur les machines virtuelles, y compris PostGIS et PGAdmin sont arrivées parfaitement ... aucune idée pourquoi cette machine hôte ne passe pas ...
la source
/var/run/postgresql
annuaire? À un moment donné, après une installation réussie, ce dossier manquait sur ma machine. Que dit la configuration sur le répertoire qu'elle doit utiliser?postgresql.conf
dans le répertoire de configuration, qui selon ci-dessus, est/etc/postgresql/9.3/main
. Vous devriez également regarder dans les fichiers journaux, probablement dans/var/log/postgresql
.Réponses:
Mes paramètres régionaux n'étaient pas correctement configurés lors de l'installation de PostgreSQL. La purge et la réinstallation n'ont pas aidé. J'ai suivi les instructions ici et cela a fait l'affaire pour moi.
Parties essentielles des informations liées reproduites ci-dessous:
Le problème s'est présenté de la manière suivante:
Le premier a été très facile à résoudre en exécutant:
... et en choisissant les paramètres régionaux préférés.
Mais après cela, PostgreSQL a toujours refusé de démarrer. Cela est dû au fait que le processus d'installation a tenté de créer un cluster au moment de l'installation, mais en raison des mauvais paramètres régionaux, cela n'a pas été fait. Nous devons donc refaire cette étape en exécutant:
(Pour la version 9.3 de PostgreSQL)
Après cette étape, PostgreSQL démarre sans problème via
la source
pg_createcluster
vous dit que le cluster existe déjà besoin de déposer d' abord (ce qui efface toutes les données en elle, alors assurez-vous d' avoir une sauvegarde):pg_dropcluster 9.3 main
.J'espère que vous avez déjà résolu ce problème, mais je rencontre un problème similaire qui semble avoir une source différente, et peut-être que mon expérience vous aidera si vous rencontrez toujours un problème.
Mon problème avec 9.3 sur Ubuntu concerne le répertoire socket qui est un répertoire transitoire dans / run. Fondamentalement, le script init.d est censé prendre soin de créer le répertoire socket dans / run / postgresql s'il n'existe pas lors de l'action de démarrage. Cela va toujours être l'état des choses après un redémarrage.
Le problème est, cependant, que le script init.d se fermera avant d'exécuter l'action de démarrage si le répertoire socket n'existe pas. En effet, l'appel à pg_lsclusters échouera sans le répertoire de socket, ce qui à son tour empêche l'action de démarrage de créer le répertoire de socket.
Je n'ai pas compris quelle est la meilleure solution, mais si je déplace la logique de création du répertoire de socket de l'action de démarrage avant l'appel à pg_lsclusters, je peux démarrer le serveur après le redémarrage sans problème.
Voici la partie de l'action de démarrage qui gère la création du répertoire socket:
Je publierai une mise à jour si la cause première de cela devient claire pour moi, car cela ne peut clairement pas être le comportement attendu.
ADDENDA:
Je pense que la raison pour laquelle j'ai rencontré ce problème est parce que je n'avais pas de bonne valeur configurée pour unix_socket_directories . Sur 9.2, cette option de configuration était unix_socket_directory, que j'ai supprimée plutôt que de passer à unix_socket_directories. Depuis que j'ai défini une valeur pour unix_socket_directories, je n'ai eu aucun problème avec le démarrage du serveur.
la source
J'ai eu plusieurs problèmes avec le fichier sockets, dans votre cas /var/run/postgresql/.s.PGSQL.5432
assurez-vous que le répertoire / var / run / postgresql existe et est accessible en écriture avant de démarrer postgresql pour plus d'informations, voir cette discussion .
également, lors de la connexion, utilisez l'indicateur -h:
et voir si cela le résout.
la source
Cela semble résoudre le problème sur Ubuntu:
Modifiez postgresql.conf:
Maintenant
service postgresql start
la source
Je suis nouveau dans PSQL mais j'ai résolu le problème en éditant start.conf J'avais commenté le paramètre "auto" pour gérer le serveur manuellement, mais il a besoin d'une valeur: auto, manuel ou désactivé.
EGD.
la source
De mon côté, le script de démarrage est incorrect. Les fichiers de configuration sont installés dans /etc/postgresql/9.3/main mais le script /usr/share/postgresql-common/init.d-functions recherche dans
Remplacez cette ligne par
la source
Tout,
après avoir creusé, j'ai trouvé (une) solution ici:
http://ubuntuforums.org/showthread.php?t=869080
Qui contenait ces instructions:
Exécuter dans le terminal:
Maintenant, mon serveur est opérationnel !!!
EDIT : après un redémarrage, le serveur ne fonctionne toujours pas ...
Toutes les pensées quant à la raison pour laquelle je devais exécuter cela sont appréciées!
la source
/etc/postgresql/9.3/main/postgresql.conf