Ker*_*ten 13 postgresql ubuntu backup
我在 /folder/.pgpass 中放了一个 .pgpass 文件,它看起来像这样
*:*:*:postgres:password_for_postgres
Run Code Online (Sandbox Code Playgroud)
我有一个 bash 脚本,用于从 postgreSQL 备份数据库:
#!/bin/bash
export PGPASSFILE=/folder/.pgpass
echo $PGPASSFILE
pg_dump --username=postgres --format=c --file=/backup/db/db.sqlc database
Run Code Online (Sandbox Code Playgroud)
但是,脚本仍然提示我输入密码。据我所知,PGPASSFILE 具有它应有的价值。关于问题可能是什么的任何提示?
/K
小智 8
在我的配置(Ubuntu 10.04.3
和PostgreSQL 8.4
)上,当我登录的用户名与我试图从文件中获取密码的用户名相同时,我终于可以让它工作.pgpass
了。
以 身份登录deployer
,我试图使用该.pgpass
文件访问用户名拥有的数据库,该用户名appname
没有等效的 Unix 用户。我无法完成这项.pgpass
工作,直到我开始以deployer
用户身份访问我的数据库...
这是我的/home/deployer/.pgpass
文件内容:
*:*:*:deployer:password
Run Code Online (Sandbox Code Playgroud)
这是其中的一部分/etc/postgresql/8.4/main/pg_hba.conf
:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 192.168.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Run Code Online (Sandbox Code Playgroud)
如您所见,我所有的连接都需要密码 ( md5
)。
使用此配置,假设我有一个使用此命令创建的数据库:
deployer@ubuntu-server:~$ createdb -T template0 -O deployer -E UTF8 dbname
Run Code Online (Sandbox Code Playgroud)
我可以在不输入密码的情况下执行以下操作:
deployer@ubuntu-server:~$ dropdb dbname
Run Code Online (Sandbox Code Playgroud)
一旦我将 my 的名称更改.pgpass
为.pgpass-no
,它将需要密码。
顺便说一句,不要忘记您的.pgpass
文件必须具有以下0600
权限:
deployer@ubuntu-server:~$ ls -la .pgpass
-rw------- 1 deployer staff 24 2012-01-06 17:29 .pgpass
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
26793 次 |
最近记录: |