Как войти в postgresql на сервере?

Ссылка скопирована
1 ответ

У меня есть данные сервера ip adress, username, password

На сервере я решил подключить postgresql, создал пользователя admin и базу данных based

Но не через psql не через pgadmin не могу удаленно подключиться

Например psql
root@server:~# psql -U admin -h host -d based
psql: error: could not connect to server: Connection refused
Is the server running on host "host" and accepting
TCP/IP connections on port 5432?

Дополнительно:

не могу удаленно подключиться

по умолчанию postgresql разрешает только соединения с того же сервера
ну и хватит уже работать от root

  • Напишите, что уже проверяли?
  • Михаил Р., изменял pg_hba.conf под свой хост
    host based admin host/32 md5

    изменял postgresql.conf
    listen_addresses = '*'

    добавлял
    sudo iptables -A INPUT -p tcp --dport 5432 -j ACCEPT

  • szjyakgf, а сервер postgresql вообще запущен? Ip, port верны? Попробуйте так подключиться psql -U admin -h host -p 5432 -d based
  • Михаил Р.,
    запущен
    root@server:~# sudo service postgresql status
    ● postgresql.service - PostgreSQL RDBMS
    Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
    Active: active (exited) since Thu 2024-03-14 09:34:15 UTC; 53s ago
    Process: 2138554 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
    Main PID: 2138554 (code=exited, status=0/SUCCESS)
    CPU: 1ms

    Mar 14 09:34:15 server systemd[1]: Starting PostgreSQL RDBMS...
    Mar 14 09:34:15 server systemd[1]: Finished PostgreSQL RDBMS.

    ip, port верны
    при psql -U admin -h host -p 5432 -d based
    получаю тот же ответ

    psql: error: could not connect to server: Connection refused
    Is the server running on host "host" and accepting
    TCP/IP connections on port 5432?

  • szjyakgf, server и host это что ли один и тот же сервер?
  • Everything_is_bad, Ну я запустил на удаленном сервере postgresql поэтому использую ip adress сервера как хост postgresql
  • szjyakgf, еще раз, это один и тоже сервер? а то странно, ты постгрес на одном перезапускаешь, а конектишься к другому.
  • Да это один сервер, просто тут проверяю подключение
    Мне нужно чтоб постгрес работал на этом сервере, а через pgadmin я подключался
    В pgadmin ввожу ip adress, бд и пользователя admin и пароль от него и получаю
    Unable to connect to server: connection timeout expired
  • szjyakgf, Поэтому решил проверить подключение через psql
  • szjyakgf, ну проверяй доступность host с server, в какой ip резолвится, пока у тебя проблема не в постгрес, а доступности порта 5432, проверь еще порт на котором запущен постгрес
  • Everything_is_bad,
    Вроде как все доступно
    root@server:~# pg_lsclusters
    Ver Cluster Port Status Owner Data directory Log file
    13 main 5432 online postgres /var/lib/postgresql/13/main /var/log/postgresql/postgresql-13-main.log
    root@server:~# telnet localhost 5432
    Trying ::1...
    Connected to localhost.
    Escape character is '^]'.
    ^CConnection closed by foreign host.
    root@server:~#
  • Почитал комментарии. Если локально 5432 порт работает, а удалённо нет, listen установлен в * - дело не в Постгресе.

    Проверять, во что резолвится имя хоста, затем telnet на этот IP с 5432 портом. Затем проверять настройки сети - фаервол, наличие НАТов и т. д.

    • Я проверил и постгрес слушает только локальные адреса
      root@server:~# netstat -tuln
      Active Internet connections (only servers)
      Proto Recv-Q Send-Q Local Address Foreign Address State
      tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
      tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
      tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
      tcp6 0 0 :::22 :::* LISTEN
      tcp6 0 0 ::1:5432 :::* LISTEN
      tcp6 0 0 ::1:25 :::* LISTEN
      udp 0 0 0.0.0.0:68 0.0.0.0:*
      udp 0 0 127.0.0.1:123 0.0.0.0:*
      udp 0 0 0.0.0.0:123 0.0.0.0:*
      udp6 0 0 fe80::5400:4ff:fe39:123 :::*
      udp6 0 0 ::1:123 :::*
      udp6 0 0 :::123 :::*

      Хотя listen устанавливал в * и перезапускал postgresql

    • szjyakgf, возможно, где-то дублируется параметр - грепните в каталоге с конфигами рекурсивно по слову listen. Или перезапускали плохо - нужен именно restart, а не reload.
    • ky0, root@server:~# sudo service postgresql status
      ● postgresql.service - PostgreSQL RDBMS
      Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
      Active: active (exited) since Thu 2024-03-14 11:47:17 UTC; 2min 53s ago
      Process: 2140018 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
      Main PID: 2140018 (code=exited, status=0/SUCCESS)
      CPU: 1ms

      Mar 14 11:47:17 server systemd[1]: Starting PostgreSQL RDBMS...
      Mar 14 11:47:17 server systemd[1]: Finished PostgreSQL RDBMS.
      root@dabloon:~# grep -r "listen" /etc/postgresql/
      /etc/postgresql/13/main/postgresql.conf:#listen_addresses = '*' # what IP address(es) to listen on;
      /etc/postgresql/13/main/pg_hba.conf:# listen on a non-local interface via the listen_addresses
      root@server:~# sudo service postgresql restart
      root@server:~# netstat -tuln
      Active Internet connections (only servers)
      Proto Recv-Q Send-Q Local Address Foreign Address State
      tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
      tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
      tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
      tcp6 0 0 :::22 :::* LISTEN
      tcp6 0 0 ::1:5432 :::* LISTEN
      tcp6 0 0 ::1:25 :::* LISTEN
      udp 0 0 0.0.0.0:68 0.0.0.0:*
      udp 0 0 127.0.0.1:123 0.0.0.0:*
      udp 0 0 0.0.0.0:123 0.0.0.0:*
      udp6 0 0 fe80::5400:4ff:fe39:123 :::*
      udp6 0 0 ::1:123 :::*
      udp6 0 0 :::123 :::*
      root@server:~#

    • szjyakgf, у вас строка c listen закомментирована.
    • ky0, О боже, какой позор...какой позор...
    • szjyakgf, ха-ха, ничего, у всех бывало...
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Мария Код Ответ

    Для входа в PostgreSQL на сервере необходимо выполнить следующие шаги:

    1. Откройте терминал или консоль на сервере, где установлена PostgreSQL.
    2. Введите команду для входа в PostgreSQL. Для этого используйте команду `psql` с параметрами `-U` для указания имени пользователя и `-d` для указания имени базы данных. Например, `psql -U username -d dbname`.
    3. После ввода команды вас попросят ввести пароль пользователя PostgreSQL. Введите пароль и нажмите Enter.
    4. Если пароль введен правильно, вы увидите приглашение для ввода SQL-запросов, что означает успешный вход в PostgreSQL.

    Пример:

    psql -U myuser -d mydatabase

    psql -U myuser -d mydatabase

    После выполнения этих шагов вы сможете работать с базой данных PostgreSQL через командную строку. Убедитесь, что у вас есть правильные учетные данные для входа в PostgreSQL и доступ к базе данных, к которой вы пытаетесь подключиться.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно