Solución:
Hay dos maneras:
- Establecer la variable de entorno PGPASSWORD p. Ej.
set PGPASSWORD=yoursecretpassword
- Usar archivo de contraseña
%APPDATA%postgresqlpgpass.conf
como se describe en la documentación
Dentro del archivo de contraseña (mi ubicación es C: Users Grzesiek AppData Roaming postgresql pgpass.conf) uso especificado en formato doc. Por ejemplo, para conectar la base de datos postgres como rol postgres en el servidor local 5432, agregue:
localhost:5432:postgres:postgres:12345
Revisé esto y funciona bien (para mí), pero no use 127.0.0.1).
Otra opción útil (especialmente si su servidor PG se ejecuta en su propia máquina cliente, y si esto no le plantea ningún problema de seguridad) es permitir el inicio de sesión sin contraseña en el servidor (modo de autenticación “de confianza”).
Por ejemplo, esta línea en pg_hba.conf
(en su directorio de DATOS, una ubicación típica: C:Program FilesPostgreSQL9.0data
) otorga acceso sin contraseña desde su máquina local.
host all all 127.0.0.1/32 trust
Entonces, conéctese con
psql.exe -h 127.0.0.1 -U postgres -w [YOUR_DB_NAME]
Sé que es una pregunta antigua, pero para cualquiera que se vea como yo, es difícil encontrar una solución para Windows. pegue esto en un archivo .bat y funcionará (al menos para mí lo hizo). cambiar el director al directorio postres, establecer la variable de entorno PGPASSWORD
ejecute el comando de copia a un archivo csv y luego borre la variable de entorno, luego regrese al directorio raíz.
cd C:Program FilesPostgreSQL9.5bin
set PGPASSWORD=yourpassword
psql -d databasename -U yourusername -w -c "COPY (select * from yourtable) TO 'c:/Users/yourdirectory/yourcsvfilename.csv' DELIMITER '|' CSV HEADER;"
set PGPASSWORD=
cd c: