#python #linux #psycopg2
#python #linux #psycopg2
Вопрос:
Я не могу подключиться к базе данных в Linux с помощью psycopg2. У меня установлен postgresql в Linux, и мой код:
import psycopg2
def testEgg():
conn = psycopg2.connect("dbname = myDatabase user = postgres port = 5432")
cur = conn.cursor()
cur.execute("CREATE TABLE egg ( num integer, data varchar);")
cur.execute("INSERT INTO egg values ( 1, 'A');")
conn.commit()
cur.execute("SELECT num from egg;")
row = cur.fetchone()
print row
cur.close()
conn.close()
testEgg()
И я получил ошибку:
psycopg2.OperationalError: FATAL: Ident authentication failed for user "postgres"
Этот код хорошо работает в windows7
, но получил вышеупомянутую ошибку в linux
.
Есть ли что-нибудь, что мне нужно еще сделать в Linux? Любое предложение будет оценено.
Спасибо.
Ответ №1:
Это проблема не из-за вашего кода, а из-за разрешения пользователя postgres.
Вы должны создать нового пользователя для доступа к вашей базе данных и заменить это :
conn = psycopg2.connect("dbname = myDatabase user = postgres port = 5432")
by (замените <your_user>
своим настоящим именем пользователя …)
conn = psycopg2.connect("dbname = myDatabase user = <your_user> port = 5432")
Чтобы создать нового пользователя в postgres, вы можете использовать двоичный файл ‘createuser’. Документация доступна здесь.
Комментарии:
1. Спасибо за информацию, но когда я это сделал, то есть когда я попытался создать пользователя, я все равно получаю ошибку «Ошибка аутентификации Ident», код таков: # createuser -S -D -R -E testUser createuser: не удалось подключиться к базе данных postgres: ФАТАЛЬНЫЙ сбой аутентификации Ident для пользователя «root»
2. Когда вы соединитесь с пользователем root, просто запишите: «su — postgres». Затем вы можете легко запустить createuser…