使用命令行参数运行PostgreSQL .sql文件

我有一些包含数千个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'文件夹中找到。 插件


#1楼

固然,验证时会出现致命错误,由于您没有包含用户名... 命令行

试试这个,对我来讲不要紧:) code

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

若是数据库是远程的,请对host使用相同的命令 io

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

#2楼

介绍如何在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)

#3楼

经过终端登陆到您的数据库并尝试:

database-# >@pathof_mysqlfile.sql

要么

database-#>-i pathof_mysqlfile.sql

要么

database-#>-c pathof_mysqlfile.sql

#4楼

您能够打开命令提示符并以管理员身份运行。 而后输入

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

Password for user postgres:将显示。

输入您的密码并输入。 我没法看到我输入的密码,但此次当我按下输入它有效。 实际上我正在将数据加载到数据库中。


#5楼

你应该这样作:

\i path_to_sql_file

看到:

在此输入图像描述

相关文章
相关标签/搜索