ruby-on-rails - 尝试从活动的 Rails 服务器进行 PG 转储并获取密码身份验证失败
问题描述
我正在尝试运行此命令
ssh -p <PORT> <user@server> 'PGPASSWORD=\"<production_password>\" pg_dump -U database_user #<production_database> -h 127.0.0.1 -F t' > <location>
我得到
pg_dump: [archiver (db)] connection to database "database_name" failed: FATAL: password authentication failed for user "database_user"
凭据必须正确,因为部署工作正常。
这是 CentOS 上实时运行的 RoR 应用程序,我试图遵循其他堆栈溢出答案,并意识到我没有目录var/lib/postgres
,也没有/etc/postgresql
. 我在寻找/etc/postgresql/9.4/main/pg_hba.conf
我不认为没有安装 postgres,因为我们正在积极运行 postgres 数据库。
我想要的只是将 rails pg 生产数据库转储到我的本地计算机!
任何线索都会非常有帮助。
--------添加我的 database.yml 配置--------
adapter: postgresql
encoding: utf8
host: 127.0.0.1
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
reconnect: true
timeout: 5000
另一个需要补充的注意事项是,我们在同一台服务器上有 2 或 3 个 PG 数据库。
并且使用this_is_a_fake_db_name
仍然给我带来了同样的错误。所以它肯定没有连接到我请求的数据库。
解决方案
我想我被阻止连接到我的数据库,这就是我无法通过身份验证的原因。
最后,我在服务器上将其备份为 sudo:
(su postgres -c 'pg_dump -U postgres <db-name>') > <backupNAME>.sql
然后用SCP复制下来
scp -P <port> user@server:/path/to/<backupNAME>.sql <local/path/to/save>
感谢@lackoftactics 的帮助!
推荐阅读
- blazor-webassembly - Blazor AOT dotnet.wasm 太大
- java - org.apache.cxf.interceptor.Interceptor 类转换异常
- python - 如何修复变量发送的不是好的值
- python - 由于 () 形状,无法拆分张量
- java - 使用 hibernate/JPA 删除事务中更新的选定实体
- c# - 将文本框放入数组中
- git - 在控制台中查看单个文件的历史记录
- typescript - 找不到模块“@foundry/ontology-api”或其相应的类型声明
- java - WebApplicationContext 是必需的 - MockMVC
- debugging - 编译、调试、执行和运行的区别