我正在尝试对我的Django站点进行数据库转储,但Django的本机dumpdata命令对于大型数据库来说相当糟糕,所以我想使用pg_dump.
这有效:
python
>>> import psycopg2
>>> psycopg2.connect(database='blah',user='blah',password='blah',host='localhost')
Run Code Online (Sandbox Code Playgroud)
这不起作用
bash
# psql -U blah blah
psql: FATAL: Ident authentication failed for user "blah"
# pg_dump -U blah blah
pg_dump: [archiver (db)] connection to database "blah" failed: FATAL: Ident authentication failed for user "blah"
Run Code Online (Sandbox Code Playgroud)
我的搜索建议我可能需要将"ident"更改为"password" /etc/postgresql/9.0/main/pg_hba.conf.这是一个合理的改变吗?为什么我不能使用任何已经适用于python psycopg2的方法进入pg_dump?
如果-h localhost在psql/pg_dump命令行上提供,它将通过TCP套接字而不是unix套接字连接.这些可以在pg_hba.conf中定义不同的身份验证方法.由于"ident身份验证"仅适用于unix套接字,因此肯定会出现这种情况.
将pg_hba.conf改为使用"md5"而不是"ident"用于"本地"行(unix套接字)是合理的,坚持使用postgresql用户帐户中定义的密码而不是期望unix用户名来识别postgresql用户名.
在默认的Debian配置中,用于认证为"postgres"的行分别放入,以便您可以将其他用户的默认值更改为md5或信任,只留下一个帐户受到保护.Istr对Postgres用户的一些嘀咕有关Debian/Ubuntu默认使用"ident"身份验证的方式更加令人困惑而不是有用.
| 归档时间: |
|
| 查看次数: |
1245 次 |
| 最近记录: |