我有一些包含數千個INSERT語句的.sql文件,須要在個人PostgreSQL數據庫上運行這些插件才能將它們添加到表中。 文件很大,沒法打開它們並將INSERT語句複製到編輯器窗口並在那裏運行它們。 我在Internet上發現您能夠經過導航到PostgreSQL安裝的bin文件夾來使用如下內容: mysql
psql -d myDataBase -a -f myInsertFile
就我而言: sql
psql -d HIGHWAYS -a -f CLUSTER_1000M.sql
而後我被要求爲個人用戶輸入密碼,但我沒法輸入任何內容,當我點擊輸入時,我收到此錯誤: 數據庫
psql:致命錯誤:用戶「myUsername」的密碼驗證失敗 編輯器
爲何不讓我輸入密碼。 有沒有辦法圍繞這個,由於我能夠運行這些腳本相當重要? post
我經過在pg_hba.conf文件中添加一個具備如下結構的新條目來解決這個問題: spa
# IPv6 local connections: host myDbName myUserName ::1/128 trust
pg_hba.conf文件一般能夠在PostgreSQL安裝的'data'文件夾中找到。 插件
固然,驗證時會出現致命錯誤,由於您沒有包含用戶名... 命令行
試試這個,對我來講不要緊:) code
psql -U username -d myDataBase -a -f myInsertFile
若是數據庫是遠程的,請對host使用相同的命令 io
psql -h host -U username -d myDataBase -a -f myInsertFile
介紹如何在Linux的PostgreSQL命令行上運行SQL:
打開終端並確保能夠運行psql
命令:
psql --version which psql
個人版本是9.1.6,位於/bin/psql
。
建立一個名爲mysqlfile.sql
的純文本文件
編輯該文件,在其中放一行:
select * from mytable;
在命令行上運行此命令(用您的用戶名和數據庫名稱替換pgadmin和kurz_prod):
psql -U pgadmin -d kurz_prod -a -f mysqlfile.sql
如下是我在終端上得到的結果(我沒有提示輸入密碼):
select * from mytable; test1 -------- hi me too (2 rows)
經過終端登陸到您的數據庫並嘗試:
database-# >@pathof_mysqlfile.sql
要麼
database-#>-i pathof_mysqlfile.sql
要麼
database-#>-c pathof_mysqlfile.sql
您能夠打開命令提示符並以管理員身份運行。 而後輸入
../bin>psql -f c:/...-h localhost -p 5432 -d databasename -U "postgres"
Password for user postgres:
將顯示。
輸入您的密碼並輸入。 我沒法看到我輸入的密碼,但此次當我按下輸入它有效。 實際上我正在將數據加載到數據庫中。
你應該這樣作:
\i path_to_sql_file
看到: