我正在尝试使用python脚本创建postgres数据库。一些研究表明,使用psycopg2模块可能是一种方法。我安装了它并在pg_hba.conf
文件中进行了所需的更改。我使用以下代码创建数据库:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from psycopg2 import connect
import sys
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT
con = None
con = connect(user='****', host = 'localhost', password='****')
dbname = "voylla_production1710"
con.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)
cur = con.cursor()
cur.execute('CREATE DATABASE ' + dbname)
cur.close()
con.close()
我试着用con = connect(user='nishant', password='everything')
替换con = connect(user='nishant', host = 'localhost', password='everything')
但我得到了以下错误:
con = connect(user='nishant', host = 'localhost', password='everything')
File "/usr/lib/python2.7/dist-packages/psycopg2/__init__.py", line 179, in connect
connection_factory=connection_factory, async=async)
psycopg2.OperationalError: FATAL: database "nishant" does not exist
有人能告诉我正确的方法吗。 谢谢
默认情况下,PostgreSQL的客户端连接到以用户命名的数据库。 这就是为什么会出现致命错误:
database "nishant" does not exist
。您可以连接到默认系统数据库
postgres
,然后发出查询以创建新数据库。确保您的
nishant
用户具有创建数据库的权限。编辑:顺便说一下,签出~/.pgpass文件来安全地存储密码,而不是在源代码(http://www.postgresql.org/docs/9.2/static/libpq-pgpass.html)中。libpq,postgresql客户端库,检查这个文件以获得正确的登录信息。它非常方便。
相关问题 更多 >
编程相关推荐