Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Run a PostgreSQL .sql file using command line arguments

I have some .sql files with thousands of INSERT statements in them and need to run these inserts on my PostgreSQL database in order to add them to a table. The files are that large that it is impossible to open them and copy the INSERT statements into an editor window and run them there. I found on the Internet that you can use the following by navigating to the bin folder of your PostgreSQL install:

psql -d myDataBase -a -f myInsertFile 

In my case:

psql -d HIGHWAYS -a -f CLUSTER_1000M.sql 

I am then asked for a password for my user, but I cannot enter anything and when I hit enter I get this error:

psql: FATAL: password authentication failed for user "myUsername"

Why won't it let me enter a password. Is there a way round this as it is critical that I can run these scripts?

I got around this issue by adding a new entry in my pg_hba.conf file with the following structure:

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

The pg_hba.conf file can usually be found in the 'data' folder of your PostgreSQL install.

like image 816
CSharpened Avatar asked Mar 16 '12 11:03

CSharpened


People also ask

How do I run a .SQL file from MySQL command line?

use the MySQL command line client: mysql -h hostname -u user database < path/to/test. sql. Install the MySQL GUI tools and open your SQL file, then execute it.


1 Answers

Of course, you will get a fatal error for authenticating, because you do not include a user name...

Try this one, it is OK for me :)

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

If the database is remote, use the same command with host

psql -h host -U username -d myDataBase -a -f myInsertFile 
like image 155
pmverma Avatar answered Sep 18 '22 13:09

pmverma