我有一些包含数千个INSERT语句的.sql文件,需要在我的PostgreSQL数据库上运行这些插件才能将它们添加到表中.文件很大,无法打开它们并将INSERT语句复制到编辑器窗口并在那里运行它们.我在Internet上发现您可以通过导航到PostgreSQL安装的bin文件夹来使用以下内容:
psql -d myDataBase -a -f myInsertFile
Run Code Online (Sandbox Code Playgroud)
就我而言:
psql -d HIGHWAYS -a -f CLUSTER_1000M.sql
Run Code Online (Sandbox Code Playgroud)
然后我被要求为我的用户输入密码,但我无法输入任何内容,当我点击输入时,我收到此错误:
psql:致命错误:用户"myUsername"的密码验证失败
为什么不让我输入密码.有没有办法围绕这个,因为我可以运行这些脚本至关重要?
我通过在pg_hba.conf文件中添加一个具有以下结构的新条目来解决这个问题:
# IPv6 local connections:
host myDbName myUserName ::1/128 trust
Run Code Online (Sandbox Code Playgroud)
pg_hba.conf文件通常可以在PostgreSQL安装的'data'文件夹中找到.
如何调用psql以便它不会提示输入密码?
这就是我所拥有的:
psql -Umyuser < myscript.sql
Run Code Online (Sandbox Code Playgroud)
但是,我找不到传递密码的参数,因此psql总是提示它.
当主机是除localhost之外的其他计算机时,PostgreSQL连接URL是如何形成的?
我允许PostgreSQL接受来自外部的请求.
我有一个新鲜的Ubuntu 10.10与所有更新和PostgreSQL 8.4安装
为了对PostgreSQL接受登录+密码连接,我已经通过其配置:
sudo su postgres
psql
ALTER USER postgres WITH PASSWORD 'password';
CREATE DATABASE myapp;
\q
exit
sudo vi /etc/postgresql/8.4/main/pg_hba.conf
change "local all all indent" to "local all all trust"
Run Code Online (Sandbox Code Playgroud)
但是,令人惊讶的是,这不起作用!命令
psql -U postgres password
Run Code Online (Sandbox Code Playgroud)
评估错误:
psql: FATAL: Ident authentication failed for user "postgres"
Run Code Online (Sandbox Code Playgroud)
任何提示我如何使其psql -U工作?
使用pg_dump时,可以使用postgres连接字符串指定主机/数据库/用户名/密码:
pg_dump postgres://someuser:somepassword@somehost.com:5432/somedatabase
Run Code Online (Sandbox Code Playgroud)
我想为pg_restore使用相同类型的连接字符串:
pg_restore -f dump.dump postgres://userb:somepassword@somehost.com:5432/otherdatabase
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误:
pg_restore: [archiver] could not open input file "postgres://userb:somepassword@somehost.com:5432/otherdatabase": No such file or directory
Run Code Online (Sandbox Code Playgroud) 我想在命令行中使用 pg_restore 恢复我的数据库 postgres 并且我想将用户的密码直接放在命令中,我试过这个命令但不起作用
pg_restore -h localhost -p 5432 -U postgres -W 123 -d my_db my_backup.backup
Run Code Online (Sandbox Code Playgroud)
但显示以下消息
pg_restore: too many arguments on the command line (the first being "-d")
Run Code Online (Sandbox Code Playgroud) 我正在尝试将一个表从一个数据库复制到另一个:
sudo -u postgres pg_dump -t _stats db30 | psql db8;
Run Code Online (Sandbox Code Playgroud)
但是,我总是被要求输入密码,而我不知道它是什么。有没有办法在没有 pg_dump 的情况下做到这一点?有没有办法让我在运行时不会被要求输入密码psql?
注意,要进入 postgres,我必须运行sudo -u postgres psql而不是 psql
如何在Ubuntu中自动备份PostgreSQL数据库?或者是否有一个脚本可以随时间进行PostgreSQL数据库备份?
我使用以下代码连接到 PostgreSQL 12 数据库:
con <- DBI::dbConnect(odbc::odbc(), driver, server, database, uid, pwd, port)
Run Code Online (Sandbox Code Playgroud)
这将我连接到 Google Cloud SQL 上的 PostgreSQL 12 数据库。然后使用以下代码上传数据:
DBI::dbCreateTable(con, tablename, df)
DBI::dbAppendTable(con, tablename, df)
Run Code Online (Sandbox Code Playgroud)
其中df是我在 R 中创建的数据框。该数据框由约 550,000 条记录组成,总计 713 MB 数据。
通过上述方法上传时,以每秒40次写入操作的速度,大约需要9个小时。有没有更快的方法将此数据上传到我的 PostgreSQL 数据库(最好通过 R)?
我们正在尝试自动备份集群的所有 PostgreSQL 数据库,我们决定使用“pg_dumpall”实用程序。但是我们找不到在不提示密码的情况下执行“pg_dumpall”的方法。我们正在使用 PostgreSQL-10。
我们正在尝试执行以下命令
pg_dumpall -U "username" -h "hostname" > "location"
Run Code Online (Sandbox Code Playgroud)
我们如何在不提示密码的情况下自动化 pg_dumpall ?请帮助我们解决这个问题。谢谢
postgresql ×10
psql ×2
cmd ×1
command-line ×1
database ×1
odbc ×1
pg-dumpall ×1
r ×1
ubuntu ×1
ubuntu-14.04 ×1