我正在本地 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/