start postgres pg_dump mac instalar create app macos postgresql homebrew

macos - pg_dump - postgres app create database



¿Cómo iniciar el servidor PostgreSQL en Mac OS X? (20)

Aquí mis 2 centavos: hice un alias para postgres pg_ctl y lo puse en .bash_profile (mi versión de postgresql es 9.2.4, y la ruta de la base de datos es /Library/PostgreSQL/9.2/data).

alias postgres.server="sudo -u postgres pg_ctl -D /Library/PostgreSQL/9.2/data"

Lanzar nueva terminal.

¿Y entonces? Puede iniciar / detener su servidor postgresql con esto:

postgres.server start postgres.server stop

ACTUALIZACIÓN FINAL:

Me había olvidado de ejecutar el comando initdb.

</ ACTUALIZACIÓN FINAL>

ejecutando este comando

ps auxwww | grep postgres

Veo que Postgres no se está ejecutando.

> ps auxwww | grep postgres remcat 1789 0.0 0.0 2434892 480 s000 R+ 11:28PM 0:00.00 grep postgres

esto plantea la pregunta: ¿Cómo inicio el servidor postgresql?

actualizar:

>pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start server starting sh: /usr/local/var/postgres/server.log: No such file or directory

actualización 2:

El toque no tuvo éxito, así que hice esto en su lugar:

> mkdir /usr/local/var/postgres > vi /usr/local/var/postgres/server.log > ls /usr/local/var/postgres/ server.log

Pero cuando intento iniciar el servidor de rieles, todavía veo esto:

Is the server running on host "localhost" and accepting TCP/IP connections on port 5432?

actualización 3:

> pg_ctl -D /usr/local/var/postgres status pg_ctl: no server running

actualización 4:

Descubrí que NO HABÍA pg_hba.conf (solo pg_hba.conf.sample), así que modifiqué la muestra y la cambié de nombre (para eliminar la .sample). Aquí están los contenidos:

# IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust

pero no entiendo esto

> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start server starting > pg_ctl -D /usr/local/var/postgres status pg_ctl: no server running

además:

sudo find / -name postgresql.conf find: /dev/fd/3: Not a directory find: /dev/fd/4: Not a directory

actualización 5:

sudo pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start Password: pg_ctl: cannot be run as root Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.

actualización 6:

esto parece extraño

> egrep ''listen|port'' /usr/local/var/postgres/postgresql.conf egrep: /usr/local/var/postgres/postgresql.conf: No such file or directory

aunque, hice esto:

>sudo find / -name "*postgresql.conf*" find: /dev/fd/3: Not a directory find: /dev/fd/4: Not a directory /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample /usr/share/postgresql/postgresql.conf.sample

así que hice esto:

egrep ''listen|port'' /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample #listen_addresses = ''localhost'' # what IP address(es) to listen on; #port = 5432 # (change requires restart) # supported by the operating system: # %r = remote host and port

así que intenté esto:

> cp /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf > cp /usr/share/postgresql/postgresql.conf.sample /usr/share/postgresql/postgresql.conf

sigue recibiendo el mismo "¿Está funcionando el servidor?" mensaje.


El gestor de paquetes de Homebrew incluye listas de launchctl para iniciarse automáticamente. Para más información ejecute brew info postgres .

Comience manualmente:

pg_ctl -D /usr/local/var/postgres start

Detener manualmente:

pg_ctl -D /usr/local/var/postgres stop

Iniciar automáticamente:

"Para que launchd inicie postgresql ahora y reinicie al iniciar sesión:"

brew services start postgresql

¿Cuál es el resultado de pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start ?

¿Cuál es el resultado del pg_ctl -D /usr/local/var/postgres status de pg_ctl -D /usr/local/var/postgres status ?

¿Hay algún mensaje de error en el server.log?

Asegúrese de que las conexiones tcp localhost estén habilitadas en pg_hba.conf:

# IPv4 local connections: host all all 127.0.0.1/32 trust

Compruebe las direcciones de escucha y el puerto en postgresql.conf:

egrep ''listen|port'' /usr/local/var/postgres/postgresql.conf

#listen_addresses = ''localhost'' # what IP address(es) to listen on; #port = 5432 # (change requires restart)

Limpiar

Postgres fue probablemente instalado a través de Homebrew , Fink , MacPorts o el instalador EnterpriseDB .

Verifique la salida de los siguientes comandos para determinar con qué administrador de paquetes se instaló:

brew && brew list|grep postgres fink && fink list|grep postgres port && port installed|grep postgres


La forma más limpia de iniciar / detener / reiniciar Postgres si lo ha instalado a través de brew es simplemente descargar y / o cargar el archivo de configuración launchd que viene con la instalación:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

La primera línea detendrá postgres y la segunda línea la iniciará. No es necesario especificar ningún directorio de datos, etc. ya que todo está en ese archivo.


Otro enfoque es el uso de lunchy gem (una envoltura para launchctl):

brew install postgresql initdb /usr/local/var/postgres -E utf8 gem install lunchy

Para iniciar postgres:

lunchy start postgres

Para detener postgres:

lunchy stop postgres

Para obtener más información, consulte: " Cómo instalar PostgreSQL en una Mac con Homebrew y Lunchy "



Para fines de desarrollo, una de las formas más sencillas es instalar Postgres.app desde el sitio oficial . Se puede iniciar / detener desde la carpeta Aplicaciones o usando los siguientes comandos en el terminal:

# start open -a Postgres # stop killall Postgres killall postgres


Para iniciar el servidor postgresql:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

para finalizar el servidor postgresql:

pg_ctl -D /usr/local/var/postgres stop -s -m fast

También puede crear un alias a través de CLI para hacerlo más fácil:

alias pg-start=''pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start'' alias pg-stop=''pg_ctl -D /usr/local/var/postgres stop -s -m fast''

Con estos solo puede escribir "pg-start" para iniciar Postgres y "pg-stop" para apagarlo.


Para macports, solo use el comando de carga / descarga y el nombre del puerto del servidor en ejecución:

sudo port load postgresql96-server - or - sudo port unload postgresql96-server

para no tener que recordar dónde se encuentra el archivo /Library/LaunchDaemons/org.macports.postgresql96.plist


Para propósitos de prueba, creo que la aplicación PostgreSQL es la mejor opción.

Ejecuta una aplicación, y el servidor está en funcionamiento. Cierra la aplicación, y el servidor se desactiva.

http://postgresapp.com/


Para una base de datos de prueba desechable rápida, puede ejecutar el servidor en primer plano.

Inicializar una nueva base de datos postgres en un nuevo directorio

mkdir db initdb db -E utf8 createdb public

Inicie el servidor en primer plano (ctrl-C para detener el servidor)

postgres -d db

En otra sesión de shell, conéctese al servidor.

psql -d public


PostgreSQL está integrado en Server.app disponible a través de la App Store en Mountain Lion. Eso significa que ya está configurado y solo necesita iniciarlo y luego crear usuarios y bases de datos.

Consejo : No empiece con la definición de $ PGDATA y así sucesivamente, tome las ubicaciones de los archivos tal como están.

Tendría este archivo: /Library/Server/PostgreSQL/Config/org.postgresql.postgres.plist

Para comenzar:

sudo serveradmin start postgres

Proceso iniciado con argumentos:

/Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D / Library / Server / PostgreSQL / Data -c listen_addresses = 127.0.0.1, :: 1 -c log_connections = on -c log_directory = / Library / Logs / PostgreSQL partes de los sistemas de las partes de los parques = PostgreSQL.log -c log_line_prefix =% t -c log_lock_waits = en -c log_statement = ddl -c logging_collocket -parques de las partes de las partes -c unix_socket_directory = / private / var / pgsql_partspolaspa-

Puedes sudo:

sudo -u _postgres psql template1

O conecte:

psql -h localhost -U _postgres postgres

Puede encontrar el directorio de datos, la versión, el estado de ejecución, etc. con

sudo serveradmin fullstatus postgres


Si desea iniciar y detener manualmente postgresql (instalado a través de homebrew), la forma más sencilla es:

brew services start postgresql

y

brew services stop postgresql


Tengo el mismo problema y realizo todas las actualizaciones desde la primera publicación. Pero después de comprobar el archivo de registro:

/usr/local/var/postgres/server.log

Veo verdadera causa:

FATAL: data directory "/usr/local/var/postgres" has group or world access DETAIL: Permissions should be u=rwx (0700).

Después de cambiar el permiso en este directorio

chmod 0700 /usr/local/var/postgres

El servidor de Postgres ha comenzado.

Cada vez que compruebe el archivo de registro.


Tuve casi el mismo problema, y ​​usted citó el comando initdb como la solución. Esta fue también la solución para mí, pero no vi que nadie la publicara aquí, así que para aquellos que la buscan:

initdb /usr/local/var/postgres -E utf8


Variación en esta respuesta: https://.com/a/13103603/2394728

initdb `brew --prefix`/var/postgres/data -E utf8`


cuando instala postgresql usando homebrew:

brew install postgres

Al final de la salida, verá estos métodos para iniciar el servidor:

To have launchd start postgresql at login: ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents Then to load postgresql now: launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist Or, if you don''t want/need launchctl, you can just run: postgres -D /usr/local/var/postgres

Creo que esta es la mejor manera.

Puede agregar un alias a su perfil. Para mayor comodidad.


ninguna de las respuestas anteriores solucionó el problema para mí a pesar de recibir los mismos mensajes de error. Pude hacer que mi instancia volviera a funcionar al eliminar el archivo postmaster.pid existente que estaba bloqueado y no permitir conexiones.


$ brew upgrade postgres

lo arregla para mi

Eso, por supuesto, actualizará su versión de postgres y actualizará / instalará cualquier dependencia. ADVERTENCIA: haga esto sabiendo que su versión postgresql probablemente cambiará. Para mí, eso no fue un gran problema.


Si su computadora fue reiniciada abruptamente

Primero, debe eliminar el archivo /usr/local/var/postgres/postmaster.pid Luego, puede reiniciar el servicio utilizando uno de los muchos otros métodos mencionados, dependiendo de su instalación.

Puede verificar esto mirando los registros de Postgres para ver qué podría estar pasando: tail -f /usr/local/var/postgres/server.log


# remove old database files (If there was any) $rm -rf /usr/local/var/postgres # install the binary $ brew install postgresql # init it $ initdb /usr/local/var/postgres # start the postgres server $ postgres -D /usr/local/var/postgres # create your database $ createdb mydb # Access db. $ psql mydb psql (9.0.1) Type "help" for help.