Postgresql порт по умолчанию: PostgreSQL Документация: port параметр
Содержание
PostgreSQL : Документация: 9.6: 19.3. Подключения и аутентификация : Компания Postgres Professional
RU
EN
RU EN
- 19.3.1. Параметры подключений
- 19.3.2. Безопасность и аутентификация
19.3.1. Параметры подключений
listen_addresses
(string
)Задаёт адреса TCP/IP, по которым сервер будет принимать подключения клиентских приложений. Это значение принимает форму списка, разделённого запятыми, из имён и/или числовых IP-адресов компьютеров. Особый элемент,
*
, обозначает все имеющиеся IP-интерфейсы. Запись0.0.0.0
позволяет задействовать все адреса IPv4, а::
— все адреса IPv6. Если список пуст, сервер не будет привязываться ни к какому IP-интерфейсу, а значит, подключиться к нему можно будет только через Unix-сокеты. По умолчанию этот параметр содержит localhost, что допускает подключение к серверу по TCP/IP только через локальный интерфейс «замыкания». Хотя механизм аутентификации клиентов (см. Главу 20) позволяет гибко управлять доступом пользователей к серверу, параметрlisten_addresses
может ограничить интерфейсы, через которые будут приниматься соединения, что бывает полезно для предотвращения злонамеренных попыток подключения через незащищённые сетевые интерфейсы. Этот параметр можно задать только при запуске сервера.port
(integer
)TCP-порт, открываемый сервером; по умолчанию, 5432. Заметьте, что этот порт используется для всех IP-адресов, через которые сервер принимает подключения. Этот параметр можно задать только при запуске сервера.
max_connections
(integer
)Определяет максимальное число одновременных подключений к серверу БД. По умолчанию обычно это 100 подключений, но это число может быть меньше, если ядро накладывает свои ограничения (это определяется в процессе initdb). Этот параметр можно задать только при запуске сервера.
Для ведомого сервера значение этого параметра должно быть больше или равно значению на ведущем. В противном случае на ведомом сервере не будут разрешены запросы.
superuser_reserved_connections
(integer
)Определяет количество «слотов» подключений, которые PostgreSQL будет резервировать для суперпользователей. При этом всего одновременно активными могут быть максимум max_connections подключений. Когда число активных одновременных подключений больше или равно
max_connections
минусsuperuser_reserved_connections
, принимаются только подключения суперпользователей, а все другие подключения, в том числе подключения для репликации, запрещаются.По умолчанию резервируются три соединения. Это значение должно быть меньше значения
max_connections
. Задать этот параметр можно только при запуске сервера.unix_socket_directories
(string
)Задаёт каталог Unix-сокета, через который сервер будет принимать подключения клиентских приложений. Создать несколько сокетов можно, перечислив в этом значении несколько каталогов через запятую. Пробелы между элементами этого списка игнорируются; если в пути каталога содержатся пробелы, его нужно заключать в двойные кавычки. При пустом значении сервер не будет работать с Unix-сокетами, в этом случае к нему можно будет подключиться только по TCP/IP. Значение по умолчанию обычно
/tmp
, но его можно изменить во время сборки. Задать этот параметр можно только при запуске сервера.Помимо самого файла сокета, который называется
.s.PGSQL.
(гдеnnnn
nnnn
— номер порта сервера), в каждом каталогеunix_socket_directories
создаётся обычный файл.s.PGSQL.
. Ни в коем случае не удаляйте эти файлы вручную.nnnn
.lockЭтот параметр не действует в системе Windows, так как в ней нет Unix-сокетов.
unix_socket_group
(string
)Задаёт группу-владельца Unix-сокетов. (Пользователем-владельцем сокетов всегда будет пользователь, запускающий сервер.) В сочетании с
unix_socket_permissions
данный параметр можно использовать как дополнительный механизм управления доступом к Unix-сокетам. По умолчанию он содержит пустую строку, то есть группой-владельцем становится основная группа пользователя, запускающего сервер. Задать этот параметр можно только при запуске сервера.Этот параметр не действует в системе Windows, так как в ней нет Unix-сокетов.
unix_socket_permissions
(integer
)Задаёт права доступа к Unix-сокетам. Для Unix-сокетов применяется обычный набор разрешений Unix. Значение параметра ожидается в числовом виде, который принимают функции
chmod
иumask
. (Для применения обычного восьмеричного формата число должно начинаться с0
(нуля).)По умолчанию действуют разрешения
0777
, при которых подключаться к сокету могут все. Другие разумные варианты —0770
(доступ имеет только пользователь и группа, см. такжеunix_socket_group
) и0700
(только пользователь). (Заметьте, что для Unix-сокетов требуется только право на запись, так что добавлять или отзывать права на чтение/выполнение не имеет смысла.)Этот механизм управления доступом не зависит от описанного в Главе 20.
Этот параметр можно задать только при запуске сервера.
Данный параметр неприменим для некоторых систем, в частности, Solaris (а именно Solaris 10), которые полностью игнорируют разрешения для сокетов. В таких системах примерно тот же эффект можно получить, указав в параметре
unix_socket_directories
каталог, доступ к которому ограничен должным образом. Этот параметр также неприменим в Windows, где нет Unix-сокетов.bonjour
(boolean
)Включает объявления о существовании сервера посредством Bonjour. По умолчанию выключен. Задать этот параметр можно только при запуске сервера.
bonjour_name
(string
)Задаёт имя службы в среде Bonjour. Если значение этого параметра — пустая строка (
''
) (это значение по умолчанию), в качестве этого имени используется имя компьютера. Этот параметр игнорируется, если сервер был скомпилирован без поддержки Bonjour. Задать этот параметр можно только при запуске сервера.tcp_keepalives_idle
(integer
)Задаёт период неактивности (в секундах), после которого по TCP клиенту должен отправляться сигнал сохранения соединения. При значении 0 действует системный параметр. Этот параметр поддерживается только в системах, воспринимающих параметр сокета
TCP_KEEPIDLE
или равнозначный, а также в Windows; в других системах он должен быть равен нулю. В сеансах, подключённых через Unix-сокеты, он игнорируется и всегда считается равным 0.Примечание
В Windows при нулевом значении этот период устанавливается равным 2 часам, так как Windows не позволяет прочитать системное значение по умолчанию.
tcp_keepalives_interval
(integer
)Задаёт интервал (в секундах), по истечении которого следует повторять сигнал сохранения соединения, если ответ от клиента не был получен. При значении 0 действует системная величина. Этот параметр поддерживается только в системах, воспринимающих параметр сокета
TCP_KEEPINTVL
или равнозначный, а также в Windows; в других системах он должен быть равен нулю. В сеансах, подключённых через Unix-сокеты, он игнорируется и всегда считается равным 0.Примечание
В Windows при нулевом значении этот интервал устанавливается равным 1 секунде, так как Windows не позволяет прочитать системное значение по умолчанию.
tcp_keepalives_count
(integer
)Задаёт число TCP-сигналов сохранения соединения, которые могут быть потеряны до того, как соединение сервера с клиентом будет признано прерванным. При значении 0 действует системная величина. Этот параметр поддерживается только в системах, воспринимающих параметр сокета
TCP_KEEPCNT
или равнозначный; в других системах он должен быть равен нулю. В сеансах, подключённых через Unix-сокеты, он игнорируется и всегда считается равным 0.Примечание
В Windows данный параметр не поддерживается и должен быть равен нулю.
19.3.2. Безопасность и аутентификация
authentication_timeout
(integer
)Максимальное время, за которое должна произойти аутентификация (в секундах). Если потенциальный клиент не сможет пройти проверку подлинности за это время, сервер закроет соединение. Благодаря этому зависшие при подключении клиенты не будут занимать соединения неограниченно долго. Значение этого параметра по умолчанию — одна минута (
1m
). Задать этот параметр можно только вpostgresql.conf
или в командной строке при запуске сервера.ssl
(boolean
)Разрешает SSL-подключения. Прежде чем включать SSL, прочитайте Раздел 18.9. По умолчанию он выключен (
off
). Этот параметр можно задать только при запуске сервера. SSL-подключения поддерживаются только для соединений по TCP/IP.ssl_ca_file
(string
)Задаёт имя файла, содержащего сертификаты центров сертификации (ЦС) для SSL-сервера. По умолчанию этот параметр пуст; то есть информация о ЦС не загружается и проверка клиентских сертификатов не выполняется. (В предыдущих выпусках PostgreSQL это имя было фиксированным:
root.crt
.) При указании относительного пути он рассматривается от каталога данных. Задать этот параметр можно только при запуске сервера.ssl_cert_file
(string
)Задаёт имя файла, содержащего сертификат SSL-сервера. Имя по умолчанию —
server.crt
. При указании относительного пути он рассматривается от каталога данных. Задать этот параметр можно только при запуске сервера.ssl_crl_file
(string
)Задаёт имя файла, содержащего список отзыва сертификатов (CRL) для SSL-сервера. По умолчанию не определён, то есть файл CRL не загружается. (В предыдущих выпусках PostgreSQL это имя было фиксированным:
root.crl
.) При указании относительного пути он рассматривается от каталога данных. Задать этот параметр можно только при запуске сервера.ssl_key_file
(string
)Задаёт имя файла, содержащего закрытый ключ SSL-сервера. По умолчанию имеет значение
server.key
. При указании относительного пути он рассматривается от каталога данных. Задать этот параметр можно только при запуске сервера.ssl_ciphers
(string
)Задаёт список наборов шифров SSL, которые могут применяться для SSL-соединений. Синтаксис этого параметра и список поддерживаемых значений можно найти на странице ciphers руководства по OpenSSL. Этот параметр действует только для подключений TLS версии 1.2 и ниже. Для подключений TLS версии 1.3 возможность выбора шифров в настоящее время отсутствует. Значение по умолчанию —
HIGH:MEDIUM:+3DES:!aNULL
. Обычно оно вполне приемлемо при отсутствии особых требований по безопасности. Задать этот параметр можно только при запуске сервера.Объяснение значения по умолчанию:
HIGH
Наборы шифров, в которых используются шифры из группы высокого уровня (
HIGH
), (например: AES, Camellia, 3DES)MEDIUM
Наборы шифров, в которых используются шифры из группы среднего уровня (
MEDIUM
) (например, RC4, SEED)+3DES
Порядок шифров для группы
HIGH
по умолчанию в OpenSSL определён некорректно. В нём 3DES оказывается выше AES128, что неправильно, так как он считается менее безопасным, чем AES128, и работает гораздо медленнее. Включение+3DES
меняет этот порядок, чтобы данный алгоритм следовал после всех шифров группHIGH
иMEDIUM
.!aNULL
Отключает наборы анонимных шифров, не требующие проверки подлинности. Такие наборы уязвимы для атак с посредником, поэтому использовать их не следует.
Конкретные наборы шифров и их свойства очень различаются от версии к версии OpenSSL. Чтобы получить фактическую информацию о них для текущей установленной версии OpenSSL, выполните команду
openssl ciphers -v 'HIGH:MEDIUM:+3DES:!aNULL'
. Учтите, что этот список фильтруется во время выполнения, в зависимости от типа ключа сервера.ssl_prefer_server_ciphers
(bool
)Определяет, должны ли шифры SSL сервера предпочитаться клиентским. По умолчанию предпочтение отдаётся шифрам сервера. Этот параметр можно задать только при запуске сервера.
В старых версиях PostgreSQL этот параметр отсутствовал и предпочтение отдавалось выбору клиента. Введён этот параметр в основном для обеспечения совместимости с этими версиями. Вообще же обычно лучше использовать конфигурацию сервера, так как в конфигурации на стороне клиента более вероятны ошибки.
ssl_ecdh_curve
(string
)Задаёт имя кривой для использования при обмене ключами ECDH. Эту кривую должны поддерживать все подключающиеся клиенты. Это не обязательно должна быть кривая, с которой был получен ключ сервера. По умолчанию выбирается кривая
prime256v1
. Этот параметр можно задать только при запуске сервера.Наиболее популярные кривые OpenSSL:
prime256v1
(NIST P-256),secp384r1
(NIST P-384) иsecp521r1
(NIST P-521).Полный список доступных кривых можно получить командой
openssl ecparam -list_curves
. Однако не все из них пригодны для TLS.password_encryption
(boolean
)Этот параметр определяет, будет ли пароль шифроваться, когда он передаётся в CREATE USER или ALTER ROLE без указания
ENCRYPTED
илиUNENCRYPTED
. По умолчанию этот параметр установлен (on
), то есть пароль шифруется.krb_server_keyfile
(string
)Задаёт размещение файла ключей для сервера Kerberos. За подробностями обратитесь к Подразделу 20.3.3. Задать этот параметр можно только в
postgresql.conf
или в командной строке при запуске сервера.krb_caseins_users
(boolean
)Определяет, должны ли имена пользователей GSSAPI обрабатываться без учёта регистра. По умолчанию значение этого параметра —
off
(регистр учитывается). Задать этот параметр можно только вpostgresql.conf
или в командной строке при запуске сервера.db_user_namespace
(boolean
)Этот параметр позволяет относить имена пользователей к базам данных. По умолчанию он имеет значение off (выключен). Задать этот параметр можно только в
postgresql.conf
или в командной строке при запуске сервера.Если он включён, имена создаваемых пользователей должны иметь вид
имя_пользователя@база_данных
. Когда подключающийся клиент передаётимя_пользователя
, к этому имени добавляется@
с именем базы данных, и сервер идентифицирует пользователя по этому полному имени. Заметьте, что для создания пользователя с именем, содержащим@
, в среде SQL потребуется заключить это имя в кавычки.Когда этот параметр включён, он не мешает создавать и использовать обычных глобальных пользователей. Чтобы подключиться с таким именем пользователя, достаточно добавить к имени
@
, например так:joe@
. Получив такое имя, сервер отбросит@
, и будет идентифицировать пользователя по начальному имени.Параметр
db_user_namespace
порождает расхождение между именами пользователей на стороне сервера и клиента. Но проверки подлинности всегда выполняются с именем с точки зрения сервера, так что, настраивая аутентификацию, следует указывать серверное представление имени, а не клиентское. Так как метод аутентификацииmd5
подмешивает имя пользователя в качестве соли и на стороне сервера, и на стороне клиента, при включённом параметреdb_user_namespace
использоватьmd5
невозможно.Примечание
Эта возможность предлагается в качестве временной меры, пока не будет найдено полноценное решение. Тогда этот параметр будет ликвидирован.
PostgreSQL : Документация: 13: 19.3. Подключения и аутентификация : Компания Postgres Professional
RU
EN
RU EN
- 19.3.1. Параметры подключений
- 19.3.2. Аутентификация
- 19.3.3. SSL
- 19.3.2. Аутентификация
19.3.1. Параметры подключений
listen_addresses
(string
)Задаёт адреса TCP/IP, по которым сервер будет принимать подключения клиентских приложений. Это значение принимает форму списка, разделённого запятыми, из имён и/или числовых IP-адресов компьютеров. Особый элемент,
*
, обозначает все имеющиеся IP-интерфейсы. Запись0.0.0.0
позволяет задействовать все адреса IPv4, а::
— все адреса IPv6. Если список пуст, сервер не будет привязываться ни к какому IP-интерфейсу, а значит, подключиться к нему можно будет только через Unix-сокеты. По умолчанию этот параметр содержит localhost, что допускает подключение к серверу по TCP/IP только через локальный интерфейс «замыкания». Хотя механизм аутентификации клиентов (см. Главу 20) позволяет гибко управлять доступом пользователей к серверу, параметрlisten_addresses
может ограничить интерфейсы, через которые будут приниматься соединения, что бывает полезно для предотвращения злонамеренных попыток подключения через незащищённые сетевые интерфейсы. Этот параметр можно задать только при запуске сервера.port
(integer
)TCP-порт, открываемый сервером; по умолчанию, 5432. Заметьте, что этот порт используется для всех IP-адресов, через которые сервер принимает подключения. Этот параметр можно задать только при запуске сервера.
max_connections
(integer
)Определяет максимальное число одновременных подключений к серверу БД. По умолчанию обычно это 100 подключений, но это число может быть меньше, если ядро накладывает свои ограничения (это определяется в процессе initdb). Этот параметр можно задать только при запуске сервера.
Для ведомого сервера значение этого параметра должно быть больше или равно значению на ведущем. В противном случае на ведомом сервере не будут разрешены запросы.
superuser_reserved_connections
(integer
)Определяет количество «слотов» подключений, которые PostgreSQL будет резервировать для суперпользователей. При этом всего одновременно активными могут быть максимум max_connections подключений. Когда число активных одновременных подключений больше или равно
max_connections
минусsuperuser_reserved_connections
, принимаются только подключения суперпользователей, а все другие подключения, в том числе подключения для репликации, запрещаются.По умолчанию резервируются три соединения. Это значение должно быть меньше значения
max_connections
. Задать этот параметр можно только при запуске сервера.unix_socket_directories
(string
)Задаёт каталог Unix-сокета, через который сервер будет принимать подключения клиентских приложений. Создать несколько сокетов можно, перечислив в этом значении несколько каталогов через запятую. Пробелы между элементами этого списка игнорируются; если в пути каталога содержатся пробелы, его нужно заключать в двойные кавычки. При пустом значении сервер не будет работать с Unix-сокетами, в этом случае к нему можно будет подключиться только по TCP/IP. Значение по умолчанию обычно
/tmp
, но его можно изменить во время сборки. В Windows значение по умолчанию пустое, поэтому Unix-сокет создаваться не будет. Задать этот параметр можно только при запуске сервера.Помимо самого файла сокета, который называется
.s.PGSQL.
(гдеnnnn
nnnn
— номер порта сервера), в каждом каталогеunix_socket_directories
создаётся обычный файл.s.PGSQL.
. Ни в коем случае не удаляйте эти файлы вручную.nnnn
.lockunix_socket_group
(string
)Задаёт группу-владельца Unix-сокетов. (Пользователем-владельцем сокетов всегда будет пользователь, запускающий сервер.) В сочетании с
unix_socket_permissions
данный параметр можно использовать как дополнительный механизм управления доступом к Unix-сокетам. По умолчанию он содержит пустую строку, то есть группой-владельцем становится основная группа пользователя, запускающего сервер. Задать этот параметр можно только при запуске сервера.В Windows данный параметр не поддерживается, так что любое его значение ни на что не влияет.
unix_socket_permissions
(integer
)Задаёт права доступа к Unix-сокетам. Для Unix-сокетов применяется обычный набор разрешений Unix. Значение параметра ожидается в числовом виде, который принимают функции
chmod
иumask
. (Для применения обычного восьмеричного формата число должно начинаться с0
(нуля).)По умолчанию действуют разрешения
0777
, при которых подключаться к сокету могут все. Другие разумные варианты —0770
(доступ имеет только пользователь и группа, см. такжеunix_socket_group
) и0700
(только пользователь). (Заметьте, что для Unix-сокетов требуется только право на запись, так что добавлять или отзывать права на чтение/выполнение не имеет смысла.)Этот механизм управления доступом не зависит от описанного в Главе 20.
Этот параметр можно задать только при запуске сервера.
Данный параметр неприменим для некоторых систем, в частности, Solaris (а именно Solaris 10), которые полностью игнорируют разрешения для сокетов. В таких системах примерно тот же эффект можно получить, указав в параметре
unix_socket_directories
каталог, доступ к которому ограничен должным образом.bonjour
(boolean
)Включает объявления о существовании сервера посредством Bonjour. По умолчанию выключен. Задать этот параметр можно только при запуске сервера.
bonjour_name
(string
)Задаёт имя службы в среде Bonjour. Если значение этого параметра — пустая строка (
''
) (это значение по умолчанию), в качестве этого имени используется имя компьютера. Этот параметр игнорируется, если сервер был скомпилирован без поддержки Bonjour. Задать этот параметр можно только при запуске сервера.tcp_keepalives_idle
(integer
)Задаёт период отсутствия сетевой активности, по истечении которого операционная система должна отправить клиенту TCP-сигнал сохранения соединения. Если это значение задаётся без единиц измерения, оно считается заданным в секундах. При значении 0 (по умолчанию) действует величина, принятая по умолчанию в операционной системе. Этот параметр поддерживается только в системах, воспринимающих параметр сокета
TCP_KEEPIDLE
или равнозначный, а также в Windows; в других системах он должен быть равен нулю. В сеансах, подключённых через Unix-сокеты, он игнорируется и всегда считается равным 0.Примечание
В Windows при присваивании нулевого значения этот период устанавливается равным 2 часам, так как Windows не позволяет прочитать системное значение по умолчанию.
tcp_keepalives_interval
(integer
)Задаёт интервал, по истечении которого следует повторять TCP-сигнал сохранения соединения, если от клиента не получено подтверждение предыдущего сигнала. Если это значение задаётся без единиц измерения, оно считается заданным в секундах. При значении 0 (по умолчанию) действует величина, принятая по умолчанию в операционной системе. Этот параметр поддерживается только в системах, воспринимающих параметр сокета
TCP_KEEPINTVL
или равнозначный, а также в Windows; в других системах он должен быть равен нулю. В сеансах, подключённых через Unix-сокеты, он игнорируется и всегда считается равным 0.Примечание
В Windows при присваивании нулевого значения интервал устанавливается равным 1 секунде, так как Windows не позволяет прочитать системное значение по умолчанию.
tcp_keepalives_count
(integer
)Задаёт число TCP-сигналов сохранения соединения, которые могут быть потеряны до того, как соединение сервера с клиентом будет признано прерванным. При значении 0 (по умолчанию) действует величина, принятая по умолчанию в операционной системе. Этот параметр поддерживается только в системах, воспринимающих параметр сокета
TCP_KEEPCNT
или равнозначный; в других системах он должен быть равен нулю. В сеансах, подключённых через Unix-сокеты, он игнорируется и всегда считается равным 0.Примечание
В Windows данный параметр не поддерживается и должен быть равен нулю.
tcp_user_timeout
(integer
)Задаёт интервал, в течение которого переданные данные могут оставаться неподтверждёнными, прежде чем будет принято решение о принудительном закрытии TCP-соединения. Если это значение задаётся без единиц измерения, оно считается заданным в миллисекундах. При значении 0 (по умолчанию) действует величина, принятая по умолчанию в операционной системе. Этот параметр поддерживается только в системах, воспринимающих параметр сокета
TCP_USER_TIMEOUT
; в других системах он должен быть равен нулю. В сеансах, подключённых через доменные сокеты Unix, он игнорируется и всегда считается равным 0.Примечание
В Windows данный параметр не поддерживается и должен быть равен нулю.
19.3.2. Аутентификация
authentication_timeout
(integer
)Максимальное время, за которое должна произойти аутентификация. Если потенциальный клиент не сможет пройти проверку подлинности за это время, сервер закроет соединение. Благодаря этому зависшие при подключении клиенты не будут занимать соединения неограниченно долго. Если это значение задаётся без единиц измерения, оно считается заданным в миллисекундах. Значение этого параметра по умолчанию — одна минута (
1m
). Задать этот параметр можно только вpostgresql.conf
или в командной строке при запуске сервера.password_encryption
(enum
)Когда в CREATE ROLE или ALTER ROLE задаётся пароль, этот параметр определяет, каким алгоритмом его шифровать. Значение по умолчанию —
md5
(пароль сохраняется в виде хеша MD5), также в качестве псевдонимаmd5
принимается значениеon
. Значениеscram-sha-256
указывает, что пароль будет шифроваться алгоритмом SCRAM-SHA-256.Учтите, что старые клиенты могут не поддерживать механизм проверки подлинности SCRAM и поэтому не будут работать с паролями, зашифрованными алгоритмом SCRAM-SHA-256. За подробностями обратитесь к Разделу 20.5.
krb_server_keyfile
(string
)Задаёт расположение файла ключей Kerberos для данного сервера. Значение по умолчанию:
FILE:/usr/local/pgsql/etc/krb5.keytab
(каталог определяется значением параметраsysconfdir
в процессе сборки; чтобы его узнать, выполнитеpg_config --sysconfdir
). Если этот параметр содержит пустую строку, используется значение по умолчанию, зависящее от системы. Задать этот параметр можно только вpostgresql. conf
или в командной строке при запуске сервера. За подробностями обратитесь к Разделу 20.6.krb_caseins_users
(boolean
)Определяет, должны ли имена пользователей GSSAPI обрабатываться без учёта регистра. По умолчанию значение этого параметра —
off
(регистр учитывается). Задать этот параметр можно только вpostgresql.conf
или в командной строке при запуске сервера.db_user_namespace
(boolean
)Этот параметр позволяет относить имена пользователей к базам данных. По умолчанию он имеет значение off (выключен). Задать этот параметр можно только в
postgresql.conf
или в командной строке при запуске сервера.Если он включён, имена создаваемых пользователей должны иметь вид
имя_пользователя@база_данных
. Когда подключающийся клиент передаётимя_пользователя
, к этому имени добавляется@
с именем базы данных, и сервер идентифицирует пользователя по этому полному имени. Заметьте, что для создания пользователя с именем, содержащим@
, в среде SQL потребуется заключить это имя в кавычки.Когда этот параметр включён, он не мешает создавать и использовать обычных глобальных пользователей. Чтобы подключиться с таким именем пользователя, достаточно добавить к имени
@
, например так:joe@
. Получив такое имя, сервер отбросит@
, и будет идентифицировать пользователя по начальному имени.Параметр
db_user_namespace
порождает расхождение между именами пользователей на стороне сервера и клиента. Но проверки подлинности всегда выполняются с именем с точки зрения сервера, так что, настраивая аутентификацию, следует указывать серверное представление имени, а не клиентское. Так как метод аутентификацииmd5
подмешивает имя пользователя в качестве соли и на стороне сервера, и на стороне клиента, при включённом параметреdb_user_namespace
использоватьmd5
невозможно.Примечание
Эта возможность предлагается в качестве временной меры, пока не будет найдено полноценное решение. Тогда этот параметр будет ликвидирован.
19.3.3. SSL
Дополнительную информацию о настройке SSL можно получить в Разделе 18.9.
ssl
(boolean
)Разрешает подключения SSL. Этот параметр можно задать только в
postgresql.conf
или в командной строке при запуске сервера. Значение по умолчанию —off
.ssl_ca_file
(string
)Задаёт имя файла, содержащего сертификаты центров сертификации (ЦС) для SSL-сервера. При указании относительного пути он рассматривается от каталога данных. Этот параметр можно задать только в
postgresql.conf
или в командной строке при запуске сервера. По умолчанию этот параметр пуст, что означает, что файл сертификатов ЦС не загружается и проверка клиентских сертификатов не производится.ssl_cert_file
(string
)Задаёт имя файла, содержащего сертификат этого SSL-сервера. При указании относительного пути он рассматривается от каталога данных. Этот параметр можно задать только в
postgresql.conf
или в командной строке при запуске сервера. Значение по умолчанию —server.crt
.ssl_crl_file
(string
)Задаёт имя файла, содержащего список отзыва клиентских сертификатов (CRL, Certificate Revocation List) для SSL. При указании относительного пути он рассматривается от каталога данных. Этот параметр можно задать только в
postgresql.conf
или в командной строке при запуске сервера. По умолчанию этот параметр пуст, что означает, что файл CRL не загружается.ssl_key_file
(string
)Задаёт имя файла, содержащего закрытый ключ SSL-сервера. При указании относительного пути он рассматривается от каталога данных. Этот параметр можно задать только в
postgresql.conf
или в командной строке при запуске сервера. Значение по умолчанию —server. key
.ssl_ciphers
(string
)Задаёт список наборов шифров SSL, которые могут применяться для SSL-соединений. Синтаксис этого параметра и список поддерживаемых значений можно найти на странице ciphers руководства по OpenSSL. Этот параметр действует только для подключений TLS версии 1.2 и ниже. Для подключений TLS версии 1.3 возможность выбора шифров в настоящее время отсутствует. Значение по умолчанию —
HIGH:MEDIUM:+3DES:!aNULL
. Обычно оно вполне приемлемо при отсутствии особых требований по безопасности.Задать этот параметр можно только в
postgresql.conf
или в командной строке при запуске сервера.Объяснение значения по умолчанию:
HIGH
Наборы шифров, в которых используются шифры из группы высокого уровня (
HIGH
), (например: AES, Camellia, 3DES)MEDIUM
Наборы шифров, в которых используются шифры из группы среднего уровня (
MEDIUM
) (например, RC4, SEED)+3DES
Порядок шифров для группы
HIGH
по умолчанию в OpenSSL определён некорректно. В нём 3DES оказывается выше AES128, что неправильно, так как он считается менее безопасным, чем AES128, и работает гораздо медленнее. Включение+3DES
меняет этот порядок, чтобы данный алгоритм следовал после всех шифров группHIGH
иMEDIUM
.!aNULL
Отключает наборы анонимных шифров, не требующие проверки подлинности. Такие наборы уязвимы для атак с посредником, поэтому использовать их не следует.
Конкретные наборы шифров и их свойства очень различаются от версии к версии OpenSSL. Чтобы получить фактическую информацию о них для текущей установленной версии OpenSSL, выполните команду
openssl ciphers -v 'HIGH:MEDIUM:+3DES:!aNULL'
. Учтите, что этот список фильтруется во время выполнения, в зависимости от типа ключа сервера.ssl_prefer_server_ciphers
(boolean
)Определяет, должны ли шифры SSL сервера предпочитаться клиентским. Этот параметр можно задать только в
postgresql. conf
или в командной строке при запуске сервера. Значение по умолчанию —on
.В старых версиях PostgreSQL этот параметр отсутствовал и предпочтение отдавалось выбору клиента. Введён этот параметр в основном для обеспечения совместимости с этими версиями. Вообще же обычно лучше использовать конфигурацию сервера, так как в конфигурации на стороне клиента более вероятны ошибки.
ssl_ecdh_curve
(string
)Задаёт имя кривой для использования при обмене ключами ECDH. Эту кривую должны поддерживать все подключающиеся клиенты. Это не обязательно должна быть кривая, с которой был получен ключ сервера. Этот параметр можно задать только в
postgresql.conf
или в командной строке при запуске сервера. Значение по умолчанию —prime256v1
.Наиболее распространённые кривые в OpenSSL —
prime256v1
(NIST P-256),secp384r1
(NIST P-384),secp521r1
(NIST P-521). Полный список доступных кривых можно получить командойopenssl ecparam -list_curves
. Однако не все из них пригодны для TLS.ssl_min_protocol_version
(enum
)Задаёт минимальную версию протокола SSL/TLS, которая может использоваться. В настоящее время допускаются версии
TLSv1
,TLSv1.1
,TLSv1.2
,TLSv1.3
. Старые версии библиотеки OpenSSL могут не поддерживать все варианты; при выборе неподдерживаемой версии будет выдана ошибка. Версии протокола до TLS 1.0, а именно SSL v.2 и v.3, не будут использоваться в любом случае.Значение по умолчанию —
TLSv1.2
, что соответствует рекомендациям, актуальным в индустрии на момент написания этой документации.Задать этот параметр можно только в
postgresql.conf
или в командной строке при запуске сервера.ssl_max_protocol_version
(enum
)Задаёт максимальную версию протокола SSL/TLS, которая может использоваться. Допускаются те же версии, что и для ssl_min_protocol_version, а также пустая строка, обозначающая отсутствие ограничения версии. По умолчанию версии не ограничиваются. Устанавливать максимальную возможную версию протокола полезно прежде всего для тестирования или в случае проблем при использовании нового протокола какими-то компонентами.
Задать этот параметр можно только в
postgresql.conf
или в командной строке при запуске сервера.ssl_dh_params_file
(string
)Задаёт имя файла с параметрами алгоритма Диффи-Хеллмана, применяемого для так называемого эфемерного семейства DH шифров SSL. По умолчанию значение пустое, то есть используются стандартные параметры DH, заданные при компиляции. Использование нестандартных параметров DH защищает от атаки, рассчитанной на взлом хорошо известных встроенных параметров DH. Создать собственный файл с параметрами DH можно, выполнив команду
openssl dhparam -out dhparams.pem 2048
.Задать этот параметр можно только в
postgresql.conf
или в командной строке при запуске сервера.ssl_passphrase_command
(string
)Задаёт внешнюю команду, которая будет вызываться, когда потребуется пароль для расшифровывания SSL-файла, например закрытого ключа. По умолчанию этот параметр не определён, то есть пароль будет запрашиваться встроенным механизмом.
Эта команда должна вывести пароль на устройство стандартного вывода и завершиться с кодом 0. В строке параметра
%p
заменяется строкой приглашения. (Напишите%%
, чтобы вывести%
буквально.) Заметьте, что строка приглашения, вероятно, будет содержать пробелы, так что её нужно будет заключить в кавычки. Если в конце добавлен один перевод строки, он будет отфильтрован при выводе.Эта команда не обязательно должна запрашивать пароль у пользователя. Она может считать его из файла, извлечь из системной связки ключей или получить другими подобными средствами. Ответственность за выбор достаточно безопасного механизма возлагается на пользователя.
Задать этот параметр можно только в
postgresql.conf
или в командной строке при запуске сервера.ssl_passphrase_command_supports_reload
(boolean
)Этот параметр определяет, будет ли заданная параметром
ssl_passphrase_command
команда, запрашивающая пароль, также вызываться при перезагрузке конфигурации, если для файла ключа требуется пароль. Когда этот параметр отключён (по умолчанию), командаssl_passphrase_command
будет игнорироваться при перезагрузке, и конфигурация SSL не будет обновляться, если требуется пароль. Это значение подходит для команды, требующей для ввода пароля наличия терминала TTY, который может быть недоступен в процессе работы сервера. Включение данного параметра может быть уместно, если, например, пароль считывается из файла.Задать этот параметр можно только в
postgresql.conf
или в командной строке при запуске сервера.
PostgreSQL: Документация: 15: postgres
postgres
postgres — сервер баз данных PostgreSQL
Synopsis
postgres
[ option
900 14 …]
Описание
postgres
— это сервер базы данных PostgreSQL. Чтобы клиентское приложение могло получить доступ к базе данных, оно подключается (по сети или локально) к работающему экземпляру postgres
. Затем экземпляр postgres
запускает отдельный серверный процесс для обработки соединения.
Один экземпляр postgres
всегда управляет данными ровно одного кластера базы данных. Кластер баз данных — это набор баз данных, которые хранятся в общем расположении файловой системы («область данных»). В системе одновременно может работать более одного экземпляра postgres
, если они используют разные области данных и разные коммуникационные порты (см. ниже). Когда запускается postgres
, ему необходимо знать расположение области данных. Место должно быть указано 9Опция 0009 -D или переменная среды PGDATA
; нет по умолчанию. Обычно -D
или PGDATA
указывают непосредственно на каталог области данных, созданный initdb. Другие возможные макеты файлов обсуждаются в Разделе 20.2.
По умолчанию postgres
запускается на переднем плане и выводит сообщения журнала в стандартный поток ошибок. В практических приложениях postgres
следует запускать как фоновый процесс, возможно, во время загрузки.
Команду postgres
можно также вызывать в однопользовательском режиме. В основном этот режим используется во время начальной загрузки с помощью initdb. Иногда он используется для отладки или аварийного восстановления; обратите внимание, что запуск однопользовательского сервера не совсем подходит для отладки сервера, поскольку не происходит реалистичного межпроцессного взаимодействия и блокировки. При вызове в однопользовательском режиме из оболочки пользователь может вводить запросы, и результаты будут выводиться на экран, но в форме, более удобной для разработчиков, чем для конечных пользователей. В однопользовательском режиме пользователю сеанса будет назначен пользователь с идентификатором 1, и этому пользователю будут предоставлены неявные права суперпользователя. На самом деле этот пользователь не обязательно должен существовать, поэтому однопользовательский режим можно использовать для ручного восстановления некоторых видов случайного повреждения системных каталогов.
Параметры
postgres
принимает следующие аргументы командной строки. Подробное обсуждение параметров см. в главе 20. Вы можете не вводить большинство этих параметров, настроив файл конфигурации. Некоторые (безопасные) параметры также могут быть установлены из подключающегося клиента в зависимости от приложения, чтобы применяться только для этого сеанса. Например, если установлена переменная среды PGOPTIONS
, то клиенты на основе libpq будут передавать эту строку на сервер, который интерпретирует ее как 9.0009 параметры командной строки postgres .
Общего назначения
-
-B
Буферы
Задает количество общих буферов для использования серверными процессами. Значение по умолчанию для этого параметра автоматически выбирается initdb. Указание этой опции эквивалентно установке параметра конфигурации shared_buffers.
-
-c
имя
=значение
Задает именованный параметр времени выполнения. Параметры конфигурации, поддерживаемые PostgreSQL, описаны в главе 20. Большинство других параметров командной строки на самом деле являются краткими формами такого назначения параметров.
-c
может появляться несколько раз для установки нескольких параметров.-
-C
имя
Печатает значение указанного параметра времени выполнения и завершает работу. (см.
-c
опция выше для подробностей.) Это возвращает значения изpostgresql.conf
, измененные любыми параметрами, предоставленными в этом вызове. Он не отражает параметры, предоставленные при запуске кластера.Можно использовать на работающем сервере для большинства параметров. Однако сервер должен быть выключен для некоторых параметров, вычисляемых во время выполнения (например, shared_memory_size, shared_memory_size_in_huge_pages и wal_segment_size).
Этот параметр предназначен для других программ, взаимодействующих с экземпляром сервера, таких как pg_ctl, для запроса значений параметров конфигурации. Приложения, ориентированные на пользователя, должны вместо этого использовать
ПОКАЗАТЬ
или представлениеpg_settings
.-
-d
уровень отладки
Устанавливает уровень отладки. Чем выше это значение, тем больше результатов отладки записывается в журнал сервера. Значения от 1 до 5. Также можно передать
-d 0
для определенного сеанса, что предотвратит распространение уровня журнала сервера родительского процессаpostgres
на этот сеанс.-
-D
каталог данных
Указывает расположение в файловой системе файлов конфигурации базы данных. Подробности см. в Разделе 20.2.
-
-е
Устанавливает стиль даты по умолчанию на «Европейский», то есть
DMY
порядок полей ввода даты. Это также приводит к тому, что день печатается перед месяцем в определенных форматах вывода даты. Дополнительную информацию см. в Разделе 8.5.-
-Ф
Отключает
fsync
призывает к повышению производительности с риском повреждения данных в случае сбоя системы. Указание этого параметра эквивалентно отключению параметра конфигурации fsync. Прочтите подробную документацию, прежде чем использовать это!-
-h
имя хоста
Указывает имя или адрес IP-узла, на котором
postgres
предназначен для прослушивания соединений TCP/IP от клиентских приложений. Значение также может быть списком адресов, разделенных запятыми, или*
, чтобы указать прослушивание на всех доступных интерфейсах. Пустое значение указывает на отсутствие прослушивания каких-либо IP-адресов, и в этом случае для подключения к серверу можно использовать только сокеты домена Unix. По умолчанию прослушивание только на локальном хосте. Указание этой опции эквивалентно установке параметра конфигурации listen_addresses.-
-я
Позволяет удаленным клиентам подключаться через соединения TCP/IP (интернет-домен). Без этой опции принимаются только локальные соединения. Эта опция эквивалентна установке
listen_addresses
на*
вpostgresql.conf
или через-h
.Этот параметр устарел, так как он не позволяет получить доступ к полной функциональности listen_addresses. Обычно лучше ставить
listen_addresses
напрямую.-
-k
каталог
Указывает каталог сокета домена Unix, на котором
postgres
должен прослушивать подключения от клиентских приложений. Значение также может быть списком каталогов, разделенных запятыми. Пустое значение указывает, что прослушивание любых сокетов домена Unix не выполняется, и в этом случае для подключения к серверу можно использовать только сокеты TCP/IP. Значение по умолчанию обычно равно 9.0009 /tmp , но это можно изменить во время сборки. Указание этой опции эквивалентно установке параметра конфигурации unix_socket_directories.-
-л
Включает безопасные соединения с использованием SSL. PostgreSQL должен быть скомпилирован с поддержкой SSL, чтобы эта опция была доступна. Дополнительные сведения об использовании SSL см. в разделе 19.9.
-
-Н
максимальное количество соединений
Устанавливает максимальное количество клиентских подключений, которое будет принимать этот сервер. Значение по умолчанию для этого параметра автоматически выбирается initdb. Указание этой опции эквивалентно установке параметра конфигурации max_connections.
-
-p
порт
Указывает порт TCP/IP или расширение файла сокета локального домена Unix, на котором
postgres
предназначен для прослушивания подключений от клиентских приложений. По умолчанию используется значение переменной средыPGPORT
, или, еслиPGPORT
не задано, по умолчанию используется значение, установленное во время компиляции (обычно 5432). Если вы укажете порт, отличный от порта по умолчанию, то все клиентские приложения должны указать один и тот же порт, используя параметры командной строки илиPGPORT
.-
-с
Выводить информацию о времени и другую статистику в конце каждой команды. Это полезно для сравнительного анализа или для настройки количества буферов.
-
-S
рабочая память
Указывает базовый объем памяти, который будет использоваться сортировкой и хеш-таблицами перед обращением к временным файлам на диске. См. описание параметра конфигурации
work_mem
в разделе 20.4.1.-
-V
--версия
Распечатать версию postgres и выйти.
-
--
имя
=значение
Задает именованный параметр времени выполнения; более короткая форма
-c
.-
--describe-config
Этот параметр выводит внутренние переменные конфигурации сервера, описания и значения по умолчанию в формате с разделителями табуляцией
КОПИРОВАТЬ
. Он предназначен в первую очередь для использования инструментами администрирования.-
-?
--помощь
Показать справку об аргументах командной строки postgres и выйти.
Полувнутренние параметры
Описанные здесь параметры используются в основном для отладки и в некоторых случаях для восстановления сильно поврежденных баз данных. Не должно быть причин использовать их в настройке производственной базы данных. Они перечислены здесь только для использования разработчиками системы PostgreSQL. Кроме того, эти параметры могут быть изменены или удалены в будущем выпуске без предварительного уведомления.
-
-f
{ с | я | о | б | т | н | м | ч }
Запрещает использование определенных методов сканирования и соединения:
s
иi
отключают последовательное и индексное сканирование соответственно,o
,b
иt
отключают сканирование только индекса, сканирование растрового индекса и сканирование TID соответственно , аn
,m
иh
отключают вложенный цикл, слияние и хэш-соединения соответственно.Ни последовательное сканирование, ни соединения с вложенным циклом нельзя полностью отключить; параметры
-fs
и-fn
просто отбивают у оптимизатора желание использовать эти типы планов, если у него есть другие альтернативы.-
-н
Этот параметр предназначен для отладки проблем, вызывающих аварийное завершение работы серверного процесса. Обычная стратегия в этой ситуации состоит в том, чтобы уведомить все другие серверные процессы о том, что они должны завершиться, а затем повторно инициализировать разделяемую память и семафоры. Это связано с тем, что ошибочный серверный процесс перед завершением мог повредить некоторое общее состояние. Эта опция указывает, что
postgres
не будет повторно инициализировать общие структуры данных. Затем опытный системный программист может использовать отладчик для проверки общей памяти и состояния семафора.-
-О
Позволяет изменять структуру системных таблиц. Это используется
initdb
.-
-П
Игнорировать системные индексы при чтении системных таблиц, но все же обновлять индексы при изменении таблиц. Это полезно при восстановлении поврежденных системных индексов.
-
-t
па[рсер] | пл[аннер] | исполнитель [исполнитель]
Распечатать статистику времени для каждого запроса, относящегося к каждому из основных системных модулей. Эту опцию нельзя использовать вместе с опцией
-s
.-
-Т
Этот параметр предназначен для отладки проблем, вызывающих аварийное завершение работы серверного процесса. Обычная стратегия в этой ситуации состоит в том, чтобы уведомить все другие серверные процессы о том, что они должны завершиться, а затем повторно инициализировать разделяемую память и семафоры. Это связано с тем, что ошибочный серверный процесс перед завершением мог повредить некоторое общее состояние. Эта опция указывает, что
postgres
остановит все остальные серверные процессы, отправив сигналSIGSTOP
, но не приведет к их завершению. Это позволяет системным программистам вручную собирать дампы памяти всех серверных процессов.-
-v
протокол
Указывает номер версии внешнего/внутреннего протокола, который будет использоваться для конкретного сеанса. Эта опция предназначена только для внутреннего использования.
-
-W
секунд
Задержка в несколько секунд возникает при запуске нового серверного процесса после выполнения им процедуры аутентификации. Это сделано для того, чтобы дать возможность подключиться к серверному процессу с отладчиком.
Опции для однопользовательского режима
Следующие опции применимы только к однопользовательскому режиму (см. Однопользовательский режим ниже).
-
--один
Выбирает однопользовательский режим. Это должен быть первый аргумент в командной строке.
-
база данных
Указывает имя базы данных, к которой необходимо получить доступ. Это должен быть последний аргумент в командной строке. Если он опущен, по умолчанию используется имя пользователя.
-
-Е
Выводить все команды на стандартный вывод перед их выполнением.
-
-й
Используйте точку с запятой, за которой следуют две новые строки, а не только новую строку, в качестве признака окончания ввода команды.
-
-r
имя файла
Отправить все выходные данные журнала сервера на
имя файла
. Этот параметр учитывается только в том случае, если он указан в качестве параметра командной строки.
Окружающая среда
-
PGCLIENTENCODING
Кодировка символов по умолчанию, используемая клиентами. (Клиенты могут переопределить это индивидуально.) Это значение также можно установить в файле конфигурации.
-
ПГДАННЫЕ
Расположение каталога данных по умолчанию
-
PGDATESTYLE
Значение по умолчанию для параметра времени выполнения DateStyle. (Использование этой переменной среды не рекомендуется.)
-
ПГПОРТ
Номер порта по умолчанию (желательно указать в файле конфигурации)
Диагностика
Сообщение об ошибке с упоминанием semget
или shmget
, вероятно, указывает на то, что вам необходимо сконфигурировать ядро для обеспечения адекватной разделяемой памяти и семафоров. Дополнительные сведения см. в разделе 19.4. Возможно, вы сможете отложить перенастройку вашего ядра, уменьшив shared_buffers, чтобы уменьшить потребление общей памяти PostgreSQL, и/или уменьшив max_connections, чтобы уменьшить потребление семафоров.
Сообщение об ошибке, указывающее на то, что другой сервер уже запущен, следует тщательно проверить, например, с помощью команды
$ пс топор | грэп постгрес
или
$ ps -ef | грэп постгрес
в зависимости от вашей системы. Если вы уверены, что конфликтующий сервер не запущен, вы можете удалить файл блокировки, упомянутый в сообщении, и повторить попытку.
Сообщение об ошибке, указывающее на невозможность привязки к порту, может означать, что этот порт уже используется каким-либо процессом, отличным от PostgreSQL. Вы также можете получить эту ошибку, если завершите postgres
и сразу же перезапустить его, используя тот же порт; в этом случае вы должны просто подождать несколько секунд, пока операционная система не закроет порт, прежде чем пытаться снова. Наконец, вы можете получить эту ошибку, если укажете номер порта, который ваша операционная система считает зарезервированным. Например, многие версии Unix считают номера портов до 1024 «доверенными» и разрешают доступ к ним только суперпользователю Unix.
Примечания
Служебная команда pg_ctl может использоваться для запуска и выключения сервер postgres
безопасно и удобно.
Если это вообще возможно, не использовать SIGKILL
для уничтожения основного сервера postgres
. Это предотвратит освобождение postgres
системных ресурсов (например, разделяемой памяти и семафоров) перед завершением работы. Это может вызвать проблемы при запуске новой версии postgres
.
Для нормального завершения сервера postgres
сигналы SIGTERM 9Можно использовать 0010,
SIGINT
или SIGQUIT
. Первый будет ждать завершения работы всех клиентов перед выходом, второй принудительно отключит всех клиентов, а третий завершит работу немедленно без надлежащего завершения работы, что приведет к запуску восстановления во время перезапуска.
Сигнал SIGHUP
перезагрузит файлы конфигурации сервера. Также возможно отправить SIGHUP
отдельному серверному процессу, но обычно это нецелесообразно.
Чтобы отменить выполняющийся запрос, отправьте сигнал SIGINT
процессу, выполняющему эту команду. Чтобы корректно завершить серверный процесс, отправьте этому процессу SIGTERM
. См. также pg_cancel_backend
и pg_terminate_backend
в Разделе 9.27.2 для эквивалентов этих двух действий, вызываемых SQL.
Сервер postgres
использует SIGQUIT
, чтобы сообщить подчиненным процессам сервера о завершении без обычной очистки. Этот сигнал не должен использоваться пользователями. Также неразумно отправлять SIGKILL
серверному процессу — основной процесс postgres
интерпретирует это как сбой и заставит все одноуровневые процессы завершить работу в рамках своей стандартной процедуры восстановления после сбоя.
Ошибки
Опции --
не будут работать на FreeBSD или OpenBSD. Вместо этого используйте -c
. Это ошибка в затронутых операционных системах; будущий выпуск PostgreSQL предоставит обходной путь, если это не будет исправлено.
Однопользовательский режим
Чтобы запустить сервер в однопользовательском режиме, используйте команду вида
postgres --single -D /usr/local/pgsql/data другие параметры
my_database
Укажите правильный путь к каталогу базы данных с помощью -D
или убедитесь, что установлена переменная среды PGDATA
. Также укажите имя конкретной базы данных, с которой вы хотите работать.
Обычно сервер однопользовательского режима рассматривает новую строку как признак конца ввода команды; нет никакой информации о точках с запятой, как в psql. Чтобы продолжить команду на несколько строк, вы должны вводить обратную косую черту непосредственно перед каждой новой строкой, кроме последней. Обратная косая черта и соседняя новая строка удаляются из команды ввода. Обратите внимание, что это произойдет даже внутри строкового литерала или комментария.
Но если вы используете ключ командной строки -j
, один символ новой строки не завершает ввод команды; вместо этого используется последовательность точка с запятой-новая строка-новая строка. То есть введите точку с запятой, за которой следует совершенно пустая строка. Обратная косая черта-новая строка в этом режиме специально не обрабатывается. Опять же, нет никакой информации о такой последовательности, появляющейся в строковом литерале или комментарии.
В любом из режимов ввода, если вы вводите точку с запятой, которая не находится непосредственно перед разделителем ввода команды или не является его частью, она считается разделителем команд. Когда вы вводите терминатор ввода команды, несколько введенных вами операторов будут выполняться как одна транзакция.
Чтобы выйти из сеанса, введите EOF (обычно Control + D ). Если вы ввели какой-либо текст после последнего ограничителя ввода команды, то EOF будет принят как ограничитель ввода команды, и для выхода потребуется еще один EOF.
Обратите внимание, что сервер однопользовательского режима не предоставляет сложных функций редактирования строк (например, нет истории команд). В однопользовательском режиме также не выполняется фоновая обработка, такая как автоматические контрольные точки или репликация.
Примеры
Чтобы запустить postgres
в фоновом режиме со значениями по умолчанию, введите:
$ nohup postgres >logfile 2>&1
Для запуска postgres
с определенным портом, например, 1234:
$ postgres -p 1234
Чтобы подключиться к этому серверу с помощью psql, укажите этот порт с опцией -p:
$ psql -p 1234
или установите переменную окружения PGPORT
:
$export PGPORT=1234
$
psql
Именованные параметры времени выполнения могут быть установлены в любом из следующих стилей:
$postgres -c work_mem=1234
$
postgres --work-mem=1234
Любая форма переопределяет любой параметр, который может существовать для work_mem
в postgresql. conf
. Обратите внимание, что символы подчеркивания в именах параметров могут быть записаны как подчеркивание или тире в командной строке. За исключением краткосрочных экспериментов, вероятно, лучше отредактировать настройку в postgresql.conf
, чем полагаться на переключатель командной строки для установки параметра.
См. также
initdb, pg_ctl
postgresql — psql всегда идет на порт 5432, даже когда запущены 2 версии postgresql
Задавать вопрос
спросил
Изменено
1 год, 4 месяца назад
Просмотрено
715 раз
У меня есть 2 версии postgresql, работающие на Suse SLES, 9.6 и 10.7. Версия 9.6 работает на порту 5432, а версия 10. 7 — на порту 5433. Все исполняемые файлы для каждой версии находятся в каталоге этой версии, включая psql.
Если я запускаю psql по умолчанию, я получаю psql для версии 9.6.3:
psql (9.6.3)
Однако, когда я пытаюсь выполнить psql для версии 10.7:
/usr/pgsql-10/bin/psql
открывает версию для 10.7, но чтение из postgresql 9.6.3:
psql (10.7, Server 9.6.3).
Если я попытаюсь указать номер порта для 10.7:
/usr/pgsql-10/bin/psql -p 5433
он требует пароль, но отклоняет пароль для пользователя postgres, который, как я знаю, работает в других контекстах.
Я потратил немало времени на поиски ответа на этот вопрос и, к сожалению, не нашел ничего полезного. Спасибо за любые предложения!
- postgresql
- psql
11
Здесь есть две проблемы.
1)
Я su для postgres: su - postgres Для этого требуется пароль, и пароль, который работает здесь, не работает, когда psql хочет/требует пароль.
Пользователь OS postgres
не совпадает с пользователем базы данных postgres
.
- При новой установке базы данных
у пользователя postgres
нет пароля. Вообще говоря, методauth
для пользователя устанавливается наtrust
,ident
илиpeer
. Посмотрите здесь pg_hba.conf, что они означают. Ключом к решению является изменениеpg_hba.conf
, чтобы позволить пользователю подключиться, чтобы иметь возможность создать пароль. Самый простой способ — установить метод подключения, лучшая практикалокальный
(сокет) додоверяет
. Затем вы можете подключиться без пароля и создать его.
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.