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

Error in database connection: Database "dbname" does not exist

我创建了一个 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 文件时,出现以下错误:-

Traceback (most recent call last): File "app.py", line 8, in port='5432' File "/usr/lib/python2.7/dist-packages/psycopg2/init.py", line 130, in connect conn = _connect(dsn, connection_factory=connection_factory, **kwasync) psycopg2.OperationalError: FATAL: database "bubbleformation" does not exist

我创建了一个名为"bubbleformation"的table,可以通过终端在psql模式下查看

谁能帮我理解应该做什么?我尝试更改密码和用户权限,但其中 none 解决了我的错误。

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

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

错误是没有名为"bubbleformation"的数据库,因此当您在终端连接数据库时,需要在数据库参数中指定哪个数据库。当您在终端中连接到数据库时,键入:

SELECT current_database();

如果它确实是一个名为 "bubbleformation" 的数据库,那么它必须是您连接到的不同集群,因此是不同的端口。

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

环境错误。我正在从 .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')) 

因此出现错误。