linux - 在本地 Windows 计算机中运行 postgres 命令时出现问题。在Linux、Mac下运行成功,但在windows下失败

标签 linux windows postgresql

我正在本地 Windows 计算机中设置 postgres 并成功安装,但面临导入转储的问题。命令

psql -U user db_name < sql_plus_dump.psql

不工作。 它没有给出任何错误,但什么也没有发生。 每当输入 psql -U 时,它都会要求登录 -U,因为它无法识别用户。有什么想法吗?

尝试重新安装 postgres

psql -U user_name db_name < sql_plus_dump.psql

最佳答案

我假设您在 git bash 或类似的东西下运行 psql,而不是在 cmd.exe 或 powershell 下运行。

第一个解决方案是在cmd或powershell下运行它。这是因为 psql 检测到 bash 不提供的内容并认为它正在 headless 运行,因此不会打印出额外的内容。

我所做的是设置一些 shell 脚本包装器,a) 创建 PGPASSFILE,b) 检测命令行是否是交互式的(-f-c 在命令行上给出)。如果是交互式的,则使用 start使用 cmd.exe 启动新窗口,否则只需使用 PGPASSFILE 在本地运行它放。 PGPASSFILE允许我绕过密码查询(因为它现在从磁盘自动读取),然后我的 sql 文件的其余部分运行良好,尽管我使用 -f而不是< .

设置起来有点痛苦,但考虑到我更喜欢命令行而不是 pgadmin,这对我来说是值得的。

关于linux - 在本地 Windows 计算机中运行 postgres 命令时出现问题。在Linux、Mac下运行成功,但在windows下失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54114813/

相关文章:

python - 从已安装的 RPM 指定 python 模块的安装路径

windows - 如何强制删除文件?

java - 增加 Windows 7 中的 SetWindowsHookEx 限制

c - 运行 xterm 并使用 c 显示文件内容

linux - 检查文件是否存在并等待 sh 脚本运行直到找到文件

windows - 如何静默安装RabbitMq

postgresql - 如何获取我在 postgres 上执行的同一查询的进程 ID

postgresql - 如何区分(和格式化) "empty"文本字段

sql - 按坐标查询花费的时间太长 - 优化选项?

linux - 在 Linux 中测试程序性能的最佳方法是什么