Ошибка подключения к базе данных: база данных "dbname" не существует - PullRequest
0 голосов
/ 12 октября 2019

Я создал файл 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 в терминале, я получаю следующую ошибку: -

Traceback (последний вызов был последним): приложение "Файл". py ", строка 8, в файле port = '5432'" /usr/lib/python2.7/dist-packages/psycopg2/init.py ", строка 130, в соединении conn = _connect (dsn, connection_factory = connection_factory, ** kwasync) psycopg2.OperationalError: FATAL: база данных "bubbleformation" не существует

Я создал таблицу с именем "bubbleformation" и ее можно просматривать в режиме psql черезтерминал.

Может кто-нибудь, пожалуйста, помогите мне понять, что должно быть сделано? Я попытался изменить пароль и пользовательские привилегии, но ни одна из них не сработала из-за моей ошибки.

Ответы [ 2 ]

1 голос
/ 12 октября 2019

Ошибка в том, что база данных с именем «bubbleformation» отсутствует, поэтому при подключении к базе данных в терминале, какую именно базу данных необходимо указать в параметре базы данных. Когда вы подключаетесь к базе данных в терминале, введите:

SELECT current_database();

Если это действительно база данных с именем «bubbleformation», то это должен быть другой кластер, к которому вы подключаетесь, и, следовательно, другой порт.

Раскрытие информации: я сотрудник EnterpriseDB (EDB).

1 голос
/ 12 октября 2019

Вы должны создать базу данных и таблицу с одним и тем же именем «bubbleformation». Вы, вероятно, создали эту таблицу в базе данных postgres.

Введите psql в качестве пользователя postgres и позвоните CREATE DATABASE bubbleformation;, затем подключитесь к нему с помощью \connect bubbleformation и затем создайте свою таблицу (что-то вроде CREATE TABLE bubbleformation (id int, name text);).

...