- путаница портов postgresql 5433 или 5432?
- 7 ответов
- How can I get the Postgres port
- 2 Answers 2
- Not the answer you’re looking for? Browse other questions tagged postgresql or ask your own question.
- Related
- Hot Network Questions
- Subscribe to RSS
- Как настроить удаленное подключение к БД PostgreSQL из Windows
- Содержание
- SSH туннель к PostgreSQL
- Прямое подключение к PostgreSQL
- Настройка PostgreSQL
- postgresql.conf
- pg_hba.conf
- Настройка pgAdmin
- Частые вопросы
- Работаем с PostgreSQL через командную строку в Linux
- Установка PostgreSQL на Linux (Mint)
- PostgreSQL Подключение, Пользователи (Роли) и Базы Данных
- PostgreSQL создание новой роли и базы данных
- Включить удаленный PostgreSQL доступ для пользователей
- Полезные команды PostgreSQL
- Выбор shema psql в консоли:
- Sequences
- Sysadminium
- PostgreSQL. Утилита psql
- Подключение к серверу баз данных
- Получение справочной информации
- Файлы, которые использует psql
- .psqlrc
- .psql_history
- Формат выводимой информации
- Взаимодействие psql с операционной системой
- Переменные окружения
путаница портов postgresql 5433 или 5432?
Я установил postgresql на OSX. Когда я запускаю psql, я получаю
однако, из /etc / services
5433 занято Пирро, 5432 назначено на стр. Я могу связаться с
но почему psql думает, что это 5433 и как я могу заставить psql выглядеть в нужном месте по умолчанию?
7 ответов
/etc/services является только консультативным, это список известных портов. Это не означает, что что-либо действительно работает на этом порту или что именованная служба будет работать на этом порту.
в случае PostgreSQL обычно используется порт 5432, если он доступен. Если это не так, большинство установщиков выберет следующий свободный порт, обычно 5433.
вы можете увидеть, что на самом деле работает с помощью netstat инструмент (доступен в OS X, Windows и Linux, с синтаксисом командной строки разной во всех трех).
это еще больше усложняется в системах Mac OS X ужасным беспорядком различных пакетов PostgreSQL-древней версии Apple PostgreSQL, встроенной в ОС Postgres.app, Homebrew, Macports, установщик EnterpriseDB и т. д.
в конечном итоге происходит то, что пользователь устанавливает Pg и запускает сервер из одной упаковки, но использует psql и libpq клиент из другой упаковки. Обычно это происходит, когда они используется Postgres.app или homebrew Pg и подключение с psql который поставляется с ОС. Они не только иногда имеют разные порты по умолчанию, но и Pg, поставляемый с Mac OS X, имеет другой путь сокета unix по умолчанию, так что даже если сервер работает на том же порту, он не будет слушать тот же сокет Unix.
большинство пользователей Mac работают вокруг этого, просто используя tcp / ip с psql -h localhost . Вы также можете указать порт, если это необходимо, например psql -h localhost -p 5433 . Вы возможно, работает несколько экземпляров PostgreSQL, поэтому убедитесь, что вы подключаетесь к правильному, используя select version() и SHOW data_directory; .
вы также можете указать каталог сокетов unix; проверьте unix_socket_directories настройка экземпляра PostgreSQL, к которому вы хотите подключиться, и укажите это с помощью psql -h , например, psql -h /tmp .
более чистое решение-исправить вашу систему PATH так что psql и libpq связанный с PostgreSQL, который вы фактически используете, это то, что найдено сначала на PATH . Подробности этого зависят от версии Mac OS X и установленных пакетов Pg. Я не использую Mac и не могу предложить гораздо больше деталей на этой стороне, не тратя больше времени, чем в настоящее время доступно.
Источник
How can I get the Postgres port
I just installed Postgres newly and I try to check if its running and on what port, although I know what default port it normally has these commands are not showing me the port.
And when I just try to simply check process and see what port it shows this after the command
How can I get the port to show and what is going on?
2 Answers 2
This answer on serverfault needs you to connect to the machine and no other packages or root user.
Just connect and run the command.
If you can connect to PostgreSQL from the original machine you can see what port it’s listening on:
First, find the “postmaster” process, the parent of all other PostgreSQL processes.
You can get it from the postmaster.pid file in the PostgreSQL data directory if the database is started.
Then you can get the port with lsof . Assuming the process ID is 23521, run
That will show you the port where PostgreSQL is listening.
Not the answer you’re looking for? Browse other questions tagged postgresql or ask your own question.
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.10.8.40416
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Источник
Как настроить удаленное подключение к БД 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:
- Запускаем pgAdmin
- Создаем новое подключение к серверу: Object -> Create -> Server;
- Вкладка General:
- Name: название сервера (произвольное);
- Вкладка Connection:
- Host Name: localhost;
- Port: 5432;
- Maintenance database: mybase;
- Username: postgres;
- Вкладка SSH Tunnel:
- Use SSH tunneling: Yes;
- Tunnel host: myserver-IP;
- Tunnel port: 58222;
- Username: root;
- Authentication: Identity file;
- Identity file: path_key.
💡 В качестве ключа указываем приватный ключ 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.
- Запустите pgAdmin
- Создаем новое подключение к серверу: Object -> Create -> Server;
- Вкладка General:
- Name: название сервера (произвольное);
- Вкладка Connection:
- Host Name: RemoteServerIP;
- Port: 5432;
- Maintenance database: mybase;
- Username: postgres.
Частые вопросы
ps aux | grep postgres | grep — -D
grep -H ‘^port’ /etc/postgresql/*/main/postgresql.conf
Файл /etc/ssh/sshd_config , строка port.
Как настроить удаленное подключение к БД PostgreSQL из Windows обсуждалось в этой статье. Я надеюсь, что теперь вы сможете настроить pgAdmin для подключения к PostgreSQL (прямое подключение или используя SSH туннель). Однако, если вы столкнетесь с каким-то проблемами при настройке сервера или pgAdmin, не стесняйтесь написать в комментариях. Я постараюсь помочь.
Источник
Работаем с PostgreSQL через командную строку в Linux
Установка PostgreSQL на Linux (Mint)
Для подключения к базе данных PostgreSQL понадобится установленный PostgreSQL клиент:
Для установки PostgreSQL сервера:
Проверим, можем ли мы подключиться к базе данных PostgreSQL:
Вывод команды должен быть примерно таким:
PostgreSQL Подключение, Пользователи (Роли) и Базы Данных
Логин в только что установленный postgreSQL сервер нужно производить под именем пользователя postgres:
Для подключения к базе данных PostgreSQL можно использовать команду:
Если такая команда не просит ввести пароль пользователя, то можно еще добавить опцию -W.
После ввода пароля и успешного подключения к базе данных PostgreSQL, можно посылать SQL-запросы и psql-команды.
PostgreSQL создание новой роли и базы данных
Создать новую роль c именем admin (указывайте нужное имя):
Создание новой базы данных:
Дать права роли на базу данных:
Включить удаленный PostgreSQL доступ для пользователей
Нам нужно отредактировать файл /etc/postgresql/ /main/pg_hba.conf, задав опцию md5 вместо peer.
может быть 10, 11, 12 и т.д.
После этого сделать restart PostgreSQL:
Полезные команды PostgreSQL
Выйти из клиента PostgreSQL:
\q
Показать список баз данных PostgreSQL:
\l
Показать список таблиц:
\dt
Показать список пользователей (ролей):
\du
Показать структуру таблицы:
Переименовать базу данных:
Удалить базу данных:
Изменить текущую базу данных в PostgreSQL (вы не сможете переименовать или удалить текущую базу данных):
\connect db_name или более короткий alias: \c db_name
Удалить роль (пользователя):
Роль не будет удалена, если у нее есть привелегии — возникнет ошибка ERROR: role cannot be dropped because some objects depend on it .
Нужно удалить привелегии у роли, например если нужно удалить роль admin2, нужно выполнить последовательность комманд с Drop Owned:
Дать права пользователю/роли на логин ( role is not permitted to log in ):
Выбор shema psql в консоли:
Посмотреть список всех схем:
Подключиться к конкретной схеме:
Sequences
Получить имена всех созданных sequences:
Получить последнее значение sequence, которые будет присвоено новой вставляемой в таблицу записи:
Источник
Sysadminium
База знаний системного администратора
PostgreSQL. Утилита psql
Для управления сервером баз данных PostgreSQL есть много разных инструментов, но при установки сервера по умолчанию устанавливается только утилита psql. Это консольная утилита с помощью которой можно подключится к серверу баз данных и начать с ним работать.
Официальную документацию по этой утилите вы можете найти тут и тут! А в этой статье даны некоторые практические примеры для её использования.
Подключение к серверу баз данных
Итак, утилита psql позволяет вам управлять сервером баз данных PostgreSQL. Но вначале нужно подключиться к серверу. Подключиться с помощью этой утилиты вы можете к локально установленному серверу, или удалённому используя сеть. Подключение выполняется таким способом:
По умолчанию при подключении вы используете:
- в качестве имени базы и роли – имя пользователя ОС;
- в качестве адреса сервера – локальный сокет, который находится в каталоге /tmp/ и порт 5432.
Таким образом если вы в системе находитесь под пользователем postgres, то следующие команды будут равнозначными:
Для получения информации о узле к которому вы подключены используется команда \conninfo:
Не выходя из терминала psql вы можете подключится к другому узлу с помощью команды \c .
Все команды psql начинаются с символа обратного слеша “\”. Но помимо этих команд можно выполнять запросы SQL, для них обратный слеш не нужен, например SELECT.
Чтобы выйти из терминала psql можно использовать 2 равносильные команды \q и exit .
Получение справочной информации
Получить справку о psql из ОС можно следующими способами:
- psql —help
- man psql – если postgres был собран с поддержкой man страниц
Вы можете получить справку находясь в терминале psql такими способами:
- \? – список команд psql
- \? variables – переменные psql
- \h – список команд SQL
- \h – синтаксис определённой команды SQL
Файлы, которые использует psql
.psqlrc
При входе в psql будут выполнятся команды записанные в
/.psqlrc. Этого файла может и не быть, но если он будет создан в домашнем каталоге пользователя, то psql будет его читать при каждом подключении к серверу.
Вот некоторые примеры настроек, которые можно ввести в
- \setenv PAGER ‘less -XS’ – результат запроса, будет попадать в утилиту less, при этом листать можно будет как вправо (если не влезает по ширине) так и вниз (если не влезает по высоте);
- \timing on – после запроса показывать время его выполнения;
- \set PROMPT1 ‘%n@%/%R%# ‘ – приглашение вода команды, когда psql ждет новую команду;
- \set PROMPT2 ‘%n@%/%R%# ‘ – приглашение вода команды, когда psql ждет дополнительный ввод;
- \set HISTSIZE 2000 – история команд будет хранить 2000 строк.
Настраивая приглашение PROMPT1 и PROMPT2 используются следующие символы:
- %n – имя пользователя;
- %/ – имя базы;
- %R – заменяет символ в зависимости от режима ввода;
- # – # если суперпользователь,
- > – если обычный пользователь.
В качестве практики давайте настроим свой .psqlrc:
Как видим выше, после каждого запроса выводится время его выполнения. Также в приглашении ввода команды видно имя пользователя и имя базы.
.psql_history
Другой полезный файл это
/.psql_history. В нем хранится история команд введенных в терминале psql. Перемещаться по истории команд в терминале psql можно клавишами вверх и вниз. Количество хранимых команд изменяется установкой переменной HISTSIZE.
Формат выводимой информации
Когда вы вводите и выполняете какой-нибудь запрос в терминале psql, то в выводе видите результат этого запроса. По умолчанию такой вывод показывается в форме таблички. Но вы можете настроить формат выводимой информации сами:
- \a – с выравниванием / без выравнивания
- \t – отображение строки заголовка и итоговой строки / без такого отображения
- \pset fieldsep ‘ ‘ – можно задать разделитель (по умолчанию используется вертикальная черта ‘|’)
- \x – расширенный режим, когда нужно вывести много столбцов одной таблицы, они будут выведены в один столбец
Например, получим информацию из представления pg_tables. Затем поменяем формат и снова получим информацию. А затем все вернем на место:
А вот пример использования расширенного режима (\x). Выглядит это так, как будто табличку перевернули:
Взаимодействие psql с операционной системой
Терминал psql умеет выполнять команды операционной системы. Для этого нужно использовать команду “\!“. Например так:
Можно установить переменную окружения в систему с помощью команды \setenv:
А для того чтобы перевести вывод команд в файл нужно использовать ‘\o имя_файла’. И чтобы вернуть всё обратно используем “\o” без имени файла. Например:
В предыдущем листинге с помощью последней команды мы выключили расширенный режим.
Помимо вывода в файл psql умеет выполнять команды из файла. Это делается с помощью команды “\i имя файла”. Вот пример:
В примере выше мы проделали следующее:
- вышли из psql;
- создали скрипт dba1.log, который подсчитывает количество строк из:
- pg_statistic – статистическая информация о содержимом базы данных;
- pg_type – информация о типах данных;
- pg_foreign_table – дополнительная информация о сторонних таблицах.
- обратно вернулись в psql;
- прочитали файл dba1.log;
- изменили формат вывода;
- выполнили скрипт sql команд;
- вернули формат вывода в прежнее состояние.
Переменные окружения
Утилита psql может использовать переменные окружения. Для установки переменной используется команда “\set”, которой нужно передать имя и значение переменной. Если команде “\set” не передать никаких параметров, то она выведет все переменные окружения.
Вывести значение переменной можно с помощью команды “\echo”, которой нужно передать имя переменной, но перед именем нужно обязательно поставить двоеточие:
Чтобы удалить переменную окружения используйте команду “\unset”, например:
Как видно выше, если переменной нет, то “\echo” просто выводит переданный текст.
Но переменную можно создавать не только с помощью “\set”, также можно в переменную записать результат запроса. Чтобы это сделать, нужно использовать в конце запроса вместо точки с запятой (;) команду “\gset”:
В примере выше мы результат функции now() записали в переменную curr_time!
Источник