PostgreSQL: no se puede cambiar el directorio a / root

12

Estoy tratando de copiar una tabla planet_osm_polygonde una base osmde datos a otra test. Yo su postgresy realicé el pg_dump.

Problema: Sin embargo, recibo el error could not change directory to "/root"y el Password:mensaje apareció dos veces. ¿Hay alguna forma de realizar pg_dumpcuando se inicia sesión como root?

root@lalaland:~# su postgres
postgres@lalaland:/root$ pg_dump -h localhost "osm" --table "public.planet_osm_polygon" | 
    psql -h localhost "test" --table "staging.planet_osm_polygon"
could not change directory to "/root"
could not change directory to "/root"
Password: Password:

ACTUALIZAR

Problema # 2: Parece que la tabla se copia en el publicesquema a pesar de que pasé la bandera --table="staging.planet_osm_polygon". ¿Por qué no se copia al esquema staging?

Nyxynyx
fuente
No hay un parámetro --table para psql, que puede ser la causa del problema # 2
dezso
@dezso que estoy usando pg_dump, ¿eso realmente llama psql? postgresql.org/docs/9.1/static/app-pgdump.html
Nyxynyx
No, pero su línea de comando contienepsql -h localhost "test" --table "staging.planet_osm_polygon"
dezso
@dezso ¡Oh, no me di cuenta de eso! Supongo que siempre se copiará en el publicesquema entonces
Nyxynyx
Este problema se debe a que el directorio pgsql / no existe, debe crearlo en / var / lib / pgsql, esto funciona para mí. Saludos cordiales Hiram
Hiram Walker

Respuestas:

25

Pruebe esto: Re: no se pudo cambiar el directorio a "/ root" :

Aparentemente hiciste "su postgres" desde la cuenta de root, por lo que aún estás en el directorio de inicio de root. Sería mejor hacer "su - postgres" para asegurarse de haber adquirido todo el entorno de la cuenta de postgres. Leer "man su" podría ayudarte aquí.

Ela
fuente
¿Es normal que pida la contraseña dos veces? Escribir la contraseña por segunda vez no la enmascara.
Nyxynyx
1
Tal vez porque está haciendo dos operaciones: 1. pg_dump -h localhost "osm" --table "public.planet_osm_polygon" 2. psql -h localhost "test" --table "staging.planet_osm_polygon"
Ela
44
Alternativa con sudo: sudo -Hiu postgres
Max Lobur
1

Para mí esto funcionó, preste atención a las citas (')

sudo -Hiu postgres 'pg_dump --column-inserts --data-only --table=someTable entities_db > /var/backups/anywhere/$(date +%Y%m%d_%H%M%S)_someTable.sql'

Tenga en cuenta el -Hiupara sudo, o usesu - postgres

también puedes poner eso en un cronjob para root con crontab -e

Philippe Gachoud
fuente