Ошибка SQLAlchemy без пароля
Это, вероятно, глупая ошибка, но я не могу найти удовлетворительного решения.
При запуске db.create_all()
я получил следующую ошибку.
sqlalchemy.exc.OperationalError: (OperationalError) fe_sendauth: no password supplied None None
Моя ссылка для базы данных установлена как
'postgresql://localhost/db_name'
Это отлично работало на моих Mac и Heroku, но на ubuntu (digitalocean) это не совсем нормально.
Любые идеи, что я могу делать неправильно?
Ответы
Ответ 1
Вероятно, вам просто нужно удалить "localhost" из строки подключения:
'postgresql:///db_name'
Это говорит psycopg2 использовать сокеты Unix-домена. Ваша конфигурация по умолчанию будет использовать "идентификатор", поэтому вы будете подключаться как пользователь, который запускает script. В конфигурации по умолчанию "md5" применяется только к соединениям TCP.
Ответ 2
На вашем Mac PostgreSQL был настроен для проверки подлинности trust
или peer
для соединений с localhost.
В вашем поле Ubuntu он настроен для проверки подлинности md5
для соединений с localhost.
Вам нужно настроить пароль или изменить режим проверки подлинности. См. pg_hba.conf
, а руководство Ubuntu для PostgreSQL.
Ответ 3
Шаблон URL должен быть:
postgresql://user:[email protected]:5432/database_name
pip install psycopg2
пользователь должен быть postgres или любым другим пользователем, которого вы создали и собираетесь использовать
Аналогично для mySql это будет:
mysql://user:[email protected]:3306/database_name
pip install mysql-python