Не удается подключиться к базе данных PostgreSQL в Linux Fedora через терминал VS Code
Итак, я использую Linux Fedora. Я нахожусь в текущем каталоге проекта Django. При двойной загрузке я сохранил приложение postgresql и сохранил резервную копию базы данных с помощью pg_dump
на съемном диске перед загрузкой в Linux.
Я нахожусь в VS Code, я установил все необходимые пакеты/зависимости для моего проекта Django. Но прежде чем я смогу запустить сервер Django, мне нужно перенести мои модели в мою базу данных.
Проблема в том, что я не могу подключиться к своей базе данных postgresql, а мне нужно сделать это до того, как я запущу python manage.py migrate
Запуск python manage.py makemigrations
CMD работает нормально.
Так что я новичок в Linux, и мне просто нужна помощь в подключении к моей db, чтобы я мог запустить свой сервер. Пожалуйста, имейте в виду, что я использую Fedora. Я смог установить postgresql для Fedora с помощью следующей команды
sudo dnf install postgresql-server postgresql-contribsudo dnf install postgresql-server postgresql-contrib
Вот ошибка, которую я получаю в консоли
Is the server running on that host and accepting TCP/IP connections?
connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?`
Для ясности, у меня уже есть существующая база данных, поэтому создание новой совершенно излишне. Я также знаю свое имя пользователя, имя базы данных, пароль и т.д.. В основном мне просто нужна помощь в подключении к моей базе данных PostgreSQL, я пытался установить соединение с базой данных через графический интерфейс pgAdmin, однако я не могу установить pgAdmin на веб-сайт, поскольку я использую Fedora.
Я пытался следовать документам Fedora по PostgreSQL, но мне показалось, что они запутаны. Во-первых, у меня уже есть созданная база данных, а в учебнике по документации используется CMD, который предполагает, что я хочу создать новую базу данных без данных в ней.
Я также попробовал установить PostreSQL на официальном сайте, однако версия для Fedora там не указана.
Я попробовал подключиться к своей базе данных с помощью pgAdmin, но это оказалось не так гладко, поскольку я работаю на Linux Fedora 41 Workstation, раньше я использовал Windows, что упрощало настройку pgAdmin.
Не уверен, поможет это или нет, но я сохранил свою программу PostgreSQL на USB-накопителе вместе с другими программными приложениями перед двойной загрузкой в Linux. По иронии судьбы, PostgreSQL, сохраненная на диске C, каким-то образом была перенесена на локальный диск, как и моя резервная база данных.
Не знаю, почему он находится на моем локальном диске, вроде как это лишнее, учитывая, что я использовал флешку для сохранения программ, необходимых для моего проекта. Но я ожидал, что процесс подключения к моей базе данных PostgreSQL будет простым, и я смогу, наконец, перенести свои модели.
Вот те подходы, которые я пробовал.
В программах установки PostgreSQL по умолчанию часто используется «безопасная» установка, при которой не разрешен доступ к внешней сети. Если вы можете подключиться к базе данных с помощью локального клиента psql, попробуйте подключиться, используя те же учетные данные, что и в вашей программе. Если это не удастся, вы определили проблему: PostgreSQL не прослушивает внешние сети. Вы можете исправить это несколькими способами:
- Измените свой код, чтобы использовать локальное (localhost или unix-domain socket) соединение, а не сетевое, как сейчас.
- Измените конфигурацию PostgreSQL для прослушивания сетевых интерфейсов. Обычно это не требуется для dev-экземпляров.
- Используйте сервер разработки в сети; это потребует от вас сетевого доступа к серверу разработки для выполнения любой фактической работы.
Я перечислил их в порядке от самого простого к самому сложному, но ваш опыт может отличаться.
Кажется, я понял, почему мне не удается успешно запустить python manage.py migrate
. Я провел небольшое исследование с помощью Google.
Оказывается, моя проблема кроется в файле pg_hba.conf
. Думаю, мне нужно заменить Ident
на md5
, осталось понять, куда именно добавить md5