我创建了一个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()
中的说明进行的
但是,当我尝试在终端中执行此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模式下查看它。
任何人都可以帮助我了解应该怎么做吗?我尝试更改密码和用户权限,但是没有一个能解决我的错误。
答案 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'))
出现错误。