Postgresql как подключиться к базе данных с другой машины
Как настроить удаленное подключение к PostgreSQL
По умолчанию, сервер баз данных pgsql разрешает подключение только с локального компьютера. Данная инструкция показывает, как разрешить подключения с удаленных систем. Она написана на примере Linux CentOS и PostgreSQL 9.5.
Для начала посмотрим путь расположения конфигурационного файла postgresql.conf:
Команда выдаст, примерно, следующее:
* нас интересует строчка /db/pgsql/postgresql.conf — это путь расположения нужного нам конфигурационного файла.
Теперь открываем на редактирование основной файл конфигурации PostgreSQL:
* напоминаю, что начало пути /db/pgsql может быть другим. Мы его получили командой ps.
Находим и редактируем следующее:
* по умолчанию, параметр закомментирован и настроен на прослушивание запросов только с локального сетевого интерфейса. В данном примере мы разрешили прослушивание запросов на всех IP-адресах (*), но, если требуется более безопасная настройка, можно просто перечислить последние через пробел.
После открываем на редактирование следующий конфигурационный файл:
и внизу добавляем следующую строку:
host all all 192.168.0.10/32 password
* в данном примере мы разрешаем удаленные подключения к серверу с компьютера 192.168.0.10. Доступ предоставляется всем учетным записям и всем базам (значение all). При желании, вместо all можно указать конкретные данные для повышения безопасности.
Чтобы изменения вступили в силу, перезапускаем службу postgresql:
# systemctl restart postgresql-9.5
Проверить подключение можно с удаленного компьютера следующей командой:
* где 192.168.0.15 — IP-адрес сервера баз данных; usersql — имя учетной записи, от которой идет подключение.
Как настроить удаленное подключение к БД PostgreSQL из Windows
Настройка удаленного подключения к БД PostgreSQL 13 на сервере Ubuntu 18 LTS из ОС Windows 10 утилиты pgAdmin 4, двумя способами: подключение с помощью SSH туннеля и прямое подключение к серверу PostgreSQL.
💡 Я рекомендую использовать подключение через SSH туннель, простое в настройке и безопасное. При использовании SSH туннеля, порт PostgreSQL не открывается для внешних подключений.
pgAdmin — самая популярная и многофункциональная платформа для администрирования и разработки с открытым исходным кодом для PostgreSQL, самой совершенной базы данных с открытым исходным кодом в мире.
Официальный сайт pgAdmin
Узнать расположение файлов конфигурации PostgreSQL: postgresql.conf, pg_hba.conf.
Узнать порт PostgreSQL командой:
В примере, файл конфигурации PostgreSQL располагается по пути /etc/postgresql/13/main/postgresql.conf, порт подключения 5432.
Содержание
SSH туннель к PostgreSQL
Подключение к серверу PostgreSQL с использованием SSH туннеля. При выборе такого типа подключения никаких дополнительных настроек на сервере PostgreSQL не требуется.
Настройка pgAdmin на Windows 10:
💡 В качестве ключа указываем приватный ключ id_rsa из Настройка SSH сертификатов на сервере. Как изменить порт SSH в Частые вопросы.
Настройки pgAdmin для подключения через SSH туннель
Прямое подключение к PostgreSQL
Для настройки прямого подключения к PostgreSQL вносим изменения в файлы конфигурации postgresql.conf и pg_hba.conf
Настройка PostgreSQL
postgresql.conf
Файл postgresql.conf находится в папке установки PostgreSQL.
Раскомментируем или добавим строку:
Мы разрешили прослушивание запросов от всех IP-адресов.
💡 Возможные варианты:
listen_addresses = ‘0.0.0.0’ чтобы слушать все IPv4;
listen_addresses = ‘::’ чтобы слушать все IPv6;
listen_addresses = ‘your.host.ip.adress’ определенный адрес или список адресов через запятую.
pg_hba.conf
Файл pg_hba.conf находится в папке установки PostgreSQL.
Открываем на редактирование:
Добавляем запись в секцию # IPv4 local connections:
Запись разрешает подключение к БД mybd пользователю postgres с IP адресом 41.223.232.15, используя пароль.
После изменения файлов конфигурации, перезапустите службу PostgreSQL.
Настройка pgAdmin
Настройка прямого подключения к базе данных PostgreSQL через интернет или локальную сеть используя pgAdmin.
Частые вопросы
Как настроить удаленное подключение к БД PostgreSQL из Windows обсуждалось в этой статье. Я надеюсь, что теперь вы сможете настроить pgAdmin для подключения к PostgreSQL (прямое подключение или используя SSH туннель). Однако, если вы столкнетесь с каким-то проблемами при настройке сервера или pgAdmin, не стесняйтесь написать в комментариях. Я постараюсь помочь.
Подключение к базе данных PostgreSQL в Linux, Windows
Подключитесь к PostgreSQL из командной строки
Запуск программы интерактивного терминала PostgreSQL, называемой psql, которая позволяет в интерактивном режиме вводить, редактировать и выполнять команды SQL. Во время установки postgres в вашей операционной системе он создает «начальную БД» и запускает домен сервера postgres. Обычно initdb создает таблицу с именем «postgres», принадлежащую пользователю «текущий пользователь, вошедший в систему»
В командной строке вашей операционной системы введите следующую команду.
Windows:
В Windows текущий пользователь не имеет значения
Получив доступ к базе данных PostgreSQL, вы можете запускать SQL-запросы и многое другое. Вот некоторые распространенные команды PSQL
вариант | Описание |
---|---|
-a —echo-все | Выведите все непустые строки ввода на стандартный вывод, когда они прочитаны. Это эквивалентно установке переменной ECHO для всех. |
-А —no-Align | Переключение в режим невыровненного выхода. |
-c команда —command = команда | Указывает, что psql должен выполнить одну командную строку, команду и затем выйти. Это полезно в сценариях оболочки. Файлы запуска (psqlrc и |
Подключение к базе данных PostgreSQL с помощью приложения с графическим интерфейсом pgAdmin
Вы также можете подключиться к базе данных PostgreSQL с помощью приложения pgAdmin GUI. Подключитесь к базе данных по адресу localhost: 5432, используя имя пользователя postgres и предоставленный пароль.
При нажатии на pgAdmin III появится следующий экран:
Теперь дважды щелкните PostgreSQL 9.4 в разделе «Группы серверов». pgAdmin попросит вас ввести пароль. Вы должны предоставить пароль для пользователя postgres для аутентификации.
В разделе «База данных» на этом разделе сервера найдите нужную базу данных и выполните запросы SQL:
Работаем с PostgreSQL через командную строку в Linux
Установка PostgreSQL на Linux (Mint)
Для подключения к базе данных PostgreSQL понадобится установленный PostgreSQL клиент:
Для установки PostgreSQL сервера:
Проверим, можем ли мы подключиться к базе данных PostgreSQL:
Вывод команды должен быть примерно таким:
PostgreSQL Подключение, Пользователи (Роли) и Базы Данных
Логин в только что установленный postgreSQL сервер нужно производить под именем пользователя postgres:
Для подключения к базе данных PostgreSQL можно использовать команду:
После ввода пароля и успешного подключения к базе данных PostgreSQL, можно посылать SQL-запросы и psql-команды.
PostgreSQL создание новой роли и базы данных
Создать новую роль c именем admin (указывайте нужное имя):
Создание новой базы данных:
Дать права роли на базу данных:
Включить удаленный PostgreSQL доступ для пользователей
Нам нужно отредактировать файл /etc/postgresql/ /main/pg_hba.conf, задав опцию md5 вместо peer.
может быть 10, 11, 12 и т.д.
После этого сделать restart PostgreSQL:
Полезные команды PostgreSQL
Выйти из клиента PostgreSQL:
Показать список баз данных PostgreSQL:
Показать список таблиц:
Показать список пользователей (ролей):
Показать структуру таблицы:
Переименовать базу данных:
Удалить базу данных:
Изменить текущую базу данных в PostgreSQL (вы не сможете переименовать или удалить текущую базу данных):
\connect db_name или более короткий alias: \c db_name
Удалить роль (пользователя):
Нужно удалить привелегии у роли, например если нужно удалить роль admin2, нужно выполнить последовательность комманд с Drop Owned:
Дать права пользователю/роли на логин ( role is not permitted to log in ):
Выбор shema psql в консоли:
Посмотреть список всех схем:
Подключиться к конкретной схеме:
Sequences
Получить имена всех созданных sequences:
Получить последнее значение sequence, которые будет присвоено новой вставляемой в таблицу записи:
PostgreSQL в Ubuntu — внешнее подключение к базе данных
Внешнее подключение к PostgreSQL, который настроен на сервере Ubuntu через программы PhpStorm, PyCharm или DataGrip.
В статье предполагается, что у вас есть первичная настройка сервера на Ubuntu. Это означает в том числе, что у вас отключен вход на сервер по паролю и настроен вход на сервер через SSH протокол.
Подключение к PostgreSQL в PhpStorm, PyCharm или DataGrip
Настраиваем SSH
Открываем вкладку подключения к базе данных, выбираем PostgreSQL и переходим ко вкладке SSH/SSL:
Ставим галочку возле пункта Use SSH tunnel и переходим по кнопке … к дальнейшей настройке:
Здесь:
Host — вводим ip адрес своего сервера
User name — пользователь Linux системы
Authentication type — выбираем OpenSSH config and authentication agent.
Далее нажимаем на кнопку Test Connection. Должны увидеть надпись Successfully connected!.
После успешного подключения к серверу по протоколу SSH настроим подключение к самой базе данных.
Подключение к базе данных
Открываем вкладку подключения к базе данных и выбираем PostgreSQL:
Host — вводим ip адрес своего сервера
User — пользователь в БД
Password — пароль этого пользователя в БД
Database — название базы данных
URL — сформируется сам
Как создать базу данных, пользователя и пароль к нему есть в статье PostgreSQL.
В базовой конфигурации PostgreSQL внешнее подключение закрыто. При попытке подключиться будут возникать ошибки. Разберем каждую из них и откроем внешний доступ.
postgresql.conf
Для исправления ошибки:
[08001] The connection attempt failed.
java.net.SocketException: Connection reset.
Поправим конфигурацию в файле postgresql.conf.
Сейчас удаленный сервер сообщает, что соединение не было распознано. Самая вероятная причина — закрыт доступ.
Найдем файл postgresql.conf:
Покажет один или несколько файлов. Открываем следующий файл (вместо 12 версии у вас может быть другая):