【发布时间】:2021-08-07 20:23:13
【问题描述】:
对于非常菜鸟的问题,我很抱歉,但我对 shell 脚本完全陌生。
简单地说,我需要连接到托管在 AWS 上的 PostgreSQL 数据库,获取一些数据,将其保存为 CSV 并将此过程转换为可执行的 bash 脚本。我已在 pgAdmin 上成功执行此操作,但无法从我的终端执行此操作。
这是我目前正在做的事情:
#!/bin/bash
psql
-U username
-h hostname
-d database
-p password
copy
(SELECT data FROM table LIMIT 100;) to "Users/name/Downloads" With CSV
现在我似乎无法在 bash 脚本中完成连接到数据库的过程,而且 SQL Query 也可能存在问题,因为它对 psql 的行为与对 pgAdmin 的行为不同。
根据我发现使用 su 或 sudo 命令可能有用的情况,有些人正在使用 --U 而不是 -U 但到目前为止我尝试过的任何方法似乎都不起作用。
作为参考,我使用的是 PostgreSQL 版本 12。我是游戏新手,需要一些帮助,我哪里出错了?
【问题讨论】:
-
您尝试从哪个用户运行此脚本?首先尝试从命令提示符运行此命令。如果它在命令提示符下工作,则仅将其放入脚本文件中
-
我试图从中运行的用户正在报告。我有只读权限
-
@AliImran :您发布的不是 bash 代码。您不希望 bash 理解
-U,是吗?所以你想通过 PostreSQL 从 bash 运行 SQL 命令? -
@AliImran : Here 是您可以在 bash 脚本中使用 psql 执行的操作。
标签: sql postgresql bash psql