数据库连接错误:数据库“ dbname”不存在

时间:2019-10-12 14:52:29

标签: python postgresql psycopg2 dbconnection

我创建了一个python文件app.py,并包含了连接到我在postgresql中创建的数据库的代码,如下所示:-

import psycopg2

conn = psycopg2.connect(
    user='postgres',
    password='1234',
    host='localhost',
    port='5432',
    database='bubbleformation'  
)

cursor = conn.sursor()
cursor.execute('SELECT * FROM bubbleformation')

for row in cursor: print(row)
conn.close()

这是根据this medium article

中的说明进行的

但是,当我尝试在终端中执行此python文件时,出现以下错误:-

  

回溯(最近一次通话最后一次):文件“ app.py”,第8行,在          port ='5432'文件“ /usr/lib/python2.7/dist-packages/psycopg2/init.py”,第130行,在   连接       conn = _connect(dsn,connection_factory = connection_factory,** kwasync)psycopg2.OperationalError:致命:数据库“ bubbleformation”不存在

我已经创建了一个名为“ bubbleformation”的表,可以通过终端在psql模式下查看它。

任何人都可以帮助我了解应该怎么做吗?我尝试更改密码和用户权限,但是没有一个能解决我的错误。

3 个答案:

答案 0 :(得分:1)

您应该使用相同的名称“ bubbleformation”创建数据库和表。您可能已经在postgres数据库中创建了该表。

以postgres用户身份输入psql并调用CREATE DATABASE bubbleformation;,然后用\connect bubbleformation连接到它,然后创建表(类似于CREATE TABLE bubbleformation (id int, name text);)。

答案 1 :(得分:1)

该错误是关于没有名为“ bubbleformation”的数据库,因此,当您在终端中连接到该数据库时,无论哪个数据库都是您需要在database参数中指定的数据库。当您在终端中连接到数据库时,键入:

SELECT current_database();

如果确实是一个名为“ bubbleformation”的数据库,则该数据库必须是您要连接的其他群集,因此必须是其他端口。

披露:我是EnterpriseDB(EDB)员工。

答案 2 :(得分:0)

由于环境错误。我正在从.env文件加载凭据。但是我错误地给出了错误的路径。


project_folder = os.path.expanduser('~/scraping') instead of 
project_folder = os.path.expanduser('~/find_my_nearest_store')
load_dotenv(os.path.join(project_folder, '.env')) 

出现错误。