script postgres linea importar from entrar ejecutar desde consola como comandos archivo postgresql command-line psql

linea - Ejecute un archivo.sql de PostgreSQL usando argumentos de la línea de comandos



importar archivo.sql a postgresql en windows (11)

Tengo algunos archivos .sql con miles de sentencias INSERT y necesito ejecutar estas inserciones en mi base de datos PostgreSQL para agregarlas a una tabla. Los archivos son tan grandes que es imposible abrirlos y copiar las declaraciones INSERT en una ventana del editor y ejecutarlas allí. Encontré en Internet que puede usar lo siguiente navegando a la carpeta bin de su instalación de PostgreSQL:

psql -d myDataBase -a -f myInsertFile

En mi caso:

psql -d HIGHWAYS -a -f CLUSTER_1000M.sql

Entonces me piden una contraseña para mi usuario, pero no puedo ingresar nada y cuando presiono enter recibo este error:

psql: FATAL: error de autenticación de contraseña para el usuario "miUsuario"

¿Por qué no me deja ingresar una contraseña? ¿Hay alguna forma de evitar esto, ya que es fundamental que pueda ejecutar estos scripts?

Resolví este problema agregando una nueva entrada en mi archivo pg_hba.conf con la siguiente estructura:

# IPv6 local connections: host myDbName myUserName ::1/128 trust

El archivo pg_hba.conf generalmente se puede encontrar en la carpeta ''datos'' de su instalación de PostgreSQL.


A través del terminal, inicie sesión en su base de datos y pruebe esto:

database-# >@pathof_mysqlfile.sql

o

database-#>-i pathof_mysqlfile.sql

o

database-#>-c pathof_mysqlfile.sql


Deberías hacerlo así:

/i path_to_sql_file

Ver:


Incluso podrías hacerlo de esta manera:

sudo -u postgres psql -d myDataBase -a -f myInsertFile

Si tiene acceso a sudo en la máquina y no se recomienda para los scripts de producción, solo para probar en su propia máquina es la forma más fácil.


Por supuesto, recibirá un error fatal al autenticarse, porque no incluye un nombre de usuario ...

Prueba este, está bien para mí :)

psql -U username -d myDataBase -a -f myInsertFile

Si la base de datos es remota, use el mismo comando con el host

psql -h host -U username -d myDataBase -a -f myInsertFile


Puede abrir un símbolo del sistema y ejecutar como administrador. Entonces escribe

../bin>psql -f c:/...-h localhost -p 5432 -d databasename -U "postgres"

Password for user postgres: se mostrará.

Escriba su contraseña y escriba. No pude ver la contraseña que estaba escribiendo, pero esta vez cuando presioné Intro, funcionó. En realidad estaba cargando datos en la base de datos.


Puede dar tanto el nombre de usuario como la CONTRASEÑA en la propia línea de comandos.

psql "dbname=''urDbName'' user=''yourUserName'' password=''yourPasswd'' host=''yourHost''" -f yourFileName.sql


Si ha iniciado sesión en psql en el shell de Linux, el comando es:

/i fileName.sql

por un camino absoluto y

/ir filename.sql

para la ruta relativa desde donde ha llamado psql.


Tienes cuatro opciones para proporcionar una contraseña:

  1. Establecer la variable de entorno PGPASSWORD. Para más detalles consulte el manual:
    http://www.postgresql.org/docs/current/static/libpq-envars.html
  2. Use un archivo .pgpass para almacenar la contraseña. Para más detalles consulte el manual:
    http://www.postgresql.org/docs/current/static/libpq-pgpass.html
  3. Use la "autenticación de confianza" para ese usuario específico: http://www.postgresql.org/docs/current/static/auth-methods.html#AUTH-TRUST
  4. Desde PostgreSQL 9.1 también puedes usar una cadena de conexión :
    https://www.postgresql.org/docs/current/static/libpq-connect.html#LIBPQ-CONNSTRING

Use esto para ejecutar archivos * .sql cuando el servidor PostgreSQL se encuentra en un lugar diferente:

psql -h localhost -d userstoreis -U admin -p 5432 -a -q -f /home/jobs/Desktop/resources/postgresql.sql -h PostgreSQL server IP address -d database name -U user name -p port which PostgreSQL server is listening on -f path to SQL script

Luego se le pedirá que ingrese la contraseña del usuario.


Consulte cómo ejecutar un SQL en la línea de comandos de PostgreSQL en Linux:

Abra un terminal y asegúrese de que puede ejecutar el comando psql :

psql --version which psql

La mía es la versión 9.1.6 ubicada en /bin/psql .

Cree un archivo de texto simple llamado mysqlfile.sql

Edite ese archivo, ponga una sola línea allí:

select * from mytable;

Ejecute este comando en la línea de comandos (sustituyendo su nombre de usuario y el nombre de su base de datos por pgadmin y kurz_prod):

psql -U pgadmin -d kurz_prod -a -f mysqlfile.sql

El siguiente es el resultado que obtengo en el terminal (no se me solicita una contraseña):

select * from mytable; test1 -------- hi me too (2 rows)


export PGPASSWORD=<password> psql -h <host> -d <database> -U <user_name> -p <port> -a -w -f <file>.sql