He instalado con éxito PostgreSQL 9.3 desde el repositorio APT en 2 máquinas virtuales que ejecutan Ubuntu 12.04 y 13.04 ... sin embargo, no puedo instalarlo correctamente en mi máquina host que ejecuta Ubuntu 12.04.
La instalación (esta vez) parece haber salido bien, pero quizás haya un error que no entiendo:
* 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.
Entonces trato de agregarme como usuario de PostgreSQL, pero obtengo esto:
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"?
No puedo ver PostgreSQL ejecutándose en el monitor del sistema, y no hay ningún archivo en la carpeta / var / run / postgresql / ... completamente vacío.
EDITAR: en las máquinas virtuales, hay un archivo en / var / run / postgresql / llamado 9.3-main.pid
No hay nada en el archivo de registro de la máquina host ubicado / var / log / postgresql
Entonces ... ¿qué está pasando aquí que no está pasando en mis máquinas virtuales? Como dije, las otras instalaciones en las máquinas virtuales, incluidas PostGIS y PGAdmin, fueron perfectas ... no tengo idea de por qué esta máquina host no está funcionando ...
fuente
/var/run/postgresql
directorio? En una etapa después de una instalación exitosa, esa carpeta faltaba en mi máquina. ¿Qué dice la configuración sobre qué directorio debería usar?postgresql.conf
en el directorio de configuración, que según lo anterior, es/etc/postgresql/9.3/main
. También debe buscar en los archivos de registro, probablemente en/var/log/postgresql
.Respuestas:
Mi configuración regional no se configuró correctamente cuando se instaló PostgreSQL. La purga y la reinstalación no ayudaron. Seguí las instrucciones aquí y eso me funcionó.
Partes esenciales de la información vinculada que se reproduce a continuación:
El problema se mostró de la siguiente manera:
El primero fue muy fácil de resolver ejecutando:
... y elegir las configuraciones regionales preferidas.
Pero después de eso, PostgreSQL aún se negó a comenzar. Esto se debe al hecho de que el proceso de instalación intentó crear un clúster en el momento de la instalación, pero debido a las configuraciones regionales incorrectas, esto no se hizo. Entonces tenemos que rehacer este paso ejecutando:
(Para la versión 9.3 de PostgreSQL)
Después de ese paso, PostgreSQL se inicia sin problemas a través de
fuente
pg_createcluster
te dice que el clúster ya existe lo que necesita para dejarla caer primero (esto borrará todos los datos en ella, por lo que asegúrese de que tiene una copia de seguridad):pg_dropcluster 9.3 main
.Espero que ya haya resuelto este problema, pero me encuentro con un problema similar que parece tener una fuente diferente, y tal vez mi experiencia le ayudará si todavía tiene un problema.
Mi problema con 9.3 en Ubuntu se relaciona con que el directorio de socket es un directorio transitorio en / run. Básicamente, se supone que el script init.d se encarga de crear el directorio de socket en / run / postgresql si no existe durante la acción de inicio. Este siempre será el estado de las cosas después de un reinicio.
Sin embargo, el problema es que el script init.d se cerrará antes de ejecutar la acción de inicio si el directorio de socket no existe. Esto se debe a que la llamada a pg_lsclusters fallará sin el directorio de socket, lo que a su vez evita que la acción de inicio cree el directorio de socket.
No he descubierto cuál es la mejor solución, pero si reubico la lógica para crear el directorio de socket desde la acción de inicio antes de la llamada a pg_lsclusters, puedo iniciar el servidor después de reiniciar sin ningún problema.
Aquí está la parte de la acción de inicio que maneja la creación del directorio de socket:
Publicaré una actualización si la causa raíz de esto se aclara para mí, porque claramente este no puede ser el comportamiento esperado.
APÉNDICE:
Creo que la razón por la que me encontraba con este problema es porque no tenía un buen valor configurado para unix_socket_directories . En 9.2, esta opción de configuración solía ser unix_socket_directory, que eliminé en lugar de cambiar a unix_socket_directories. Desde que configuré un valor para unix_socket_directories, no he tenido ningún problema con el inicio del servidor.
fuente
He tenido varios problemas con el archivo de sockets, en su caso /var/run/postgresql/.s.PGSQL.5432
asegúrese de que el directorio / var / run / postgresql exista y se pueda escribir antes de iniciar postgresql para obtener más información, consulte esta discusión .
también, al conectar use -h flag:
y ver si eso lo resuelve.
fuente
Esto parece solucionar el problema en Ubuntu:
Edite postgresql.conf:
Ahora haz
service postgresql start
fuente
Soy nuevo en PSQL pero resolví el problema editando start.conf. Comenté la configuración "auto" para administrar el servidor manualmente, pero necesita un valor: auto, manual o deshabilitado.
EGD
fuente
Por mi parte, el script de inicio es incorrecto. Los archivos de configuración se instalan en /etc/postgresql/9.3/main pero el script /usr/share/postgresql-common/init.d-functions está buscando en
Reemplace esta línea con
fuente
Todos,
Después de investigar un poco, encontré (a) la solución aquí:
http://ubuntuforums.org/showthread.php?t=869080
Que contenía estas instrucciones:
Ejecutar en terminal:
¡Ahora mi servidor está funcionando!
EDITAR : después de reiniciar, el servidor aún no se está ejecutando ...
¡Se agradece cualquier idea de por qué necesitaba ejecutar esto!
fuente
/etc/postgresql/9.3/main/postgresql.conf