我有一些包含数千个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
看到: