Как войти в postgresql на сервере?
У меня есть данные сервера 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
host based admin host/32 md5
изменял postgresql.conf
listen_addresses = '*'
добавлял
sudo iptables -A INPUT -p tcp --dport 5432 -j ACCEPT
запущен
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?
Мне нужно чтоб постгрес работал на этом сервере, а через pgadmin я подключался
В pgadmin ввожу ip adress, бд и пользователя admin и пароль от него и получаю
Unable to connect to server: connection timeout expired
Вроде как все доступно
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: 1msMar 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, ха-ха, ничего, у всех бывало...
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для входа в PostgreSQL на сервере необходимо выполнить следующие шаги:
1. Откройте терминал или консоль на сервере, где установлена PostgreSQL.
2. Введите команду для входа в PostgreSQL. Для этого используйте команду `psql` с параметрами `-U` для указания имени пользователя и `-d` для указания имени базы данных. Например, `psql -U username -d dbname`.
3. После ввода команды вас попросят ввести пароль пользователя PostgreSQL. Введите пароль и нажмите Enter.
4. Если пароль введен правильно, вы увидите приглашение для ввода SQL-запросов, что означает успешный вход в PostgreSQL.
Пример:
psql -U myuser -d mydatabase
После выполнения этих шагов вы сможете работать с базой данных PostgreSQL через командную строку. Убедитесь, что у вас есть правильные учетные данные для входа в PostgreSQL и доступ к базе данных, к которой вы пытаетесь подключиться.