Python 使用psycopg2创建postgresql数据库

Python 使用psycopg2创建postgresql数据库,python,postgresql,psycopg2,Python,Postgresql,Psycopg2,我正在尝试使用python脚本创建postgres DB。一些研究表明,使用psycopg2模块可能是实现这一目标的一种方式。我安装了它,并在pg_hba.conf文件中进行了必要的更改。我使用以下代码创建数据库: #!/usr/bin/python # -*- coding: utf-8 -*- from psycopg2 import connect import sys from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT

我正在尝试使用python脚本创建postgres DB。一些研究表明,使用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',host='localhost',password='everything')
替换为
con=connect(user='nishant',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的客户端连接到以用户命名的数据库。 这就是为什么会出现致命错误:
数据库“nishant”不存在

您可以连接到默认系统数据库
postgres
,然后发出查询以创建新数据库

con = connect(dbname='postgres', user='nishant', host='localhost', password='everything')
确保您的
nishant
用户具有创建数据库的权限


编辑:顺便说一下,检查~/.pgpass文件以安全地存储密码,而不是在源代码()中。postgresql客户端库libpq检查此文件以获得正确的登录信息。非常方便。

非常感谢您的编辑和
更改用户您的\u用户名CREATEDB成功。@Nicolas我用你的方法成功地创建了新的数据库,我想添加一行,可以打印出我在服务器上的当前数据库,如何编写代码?查询Postgres元数据以列出数据库:
从pg_数据库中选择datname
。有关PG元数据的更多信息,请参阅postgresql.org上的文档。小补丁:当psycopg2.connect中使用关键字参数时,数据库名称应使用“database”关键字(而不是“dbname”):设置隔离级别对我来说是使其工作的必要步骤。