Sql

Server postgresql start: PostgreSQL : Документация: 9.6: 18.3. Запуск сервера баз данных : Компания Postgres Professional

Содержание

PostgreSQL : Документация: 9.6: 18.3. Запуск сервера баз данных : Компания Postgres Professional

18.3. Запуск сервера баз данных

Чтобы кто-либо смог обратиться к базе данных, необходимо сначала запустить сервер баз данных. Программа сервера называется postgres. Для работы программа postgres должна знать, где найти данные, которые она будет использовать. Указать это местоположение позволяет параметр -D. Таким образом, проще всего запустить сервер, выполнив команду:

$ postgres -D /usr/local/pgsql/data

в результате которой сервер продолжит работу в качестве процесса переднего плана. Запускать эту команду следует под именем учётной записи PostgreSQL. Без параметра -D сервер попытается использовать каталог данных, указанный в переменной окружения PGDATA. Если и эта переменная не определена, сервер не будет запущен.

Однако обычно лучше запускать postgres в фоновом режиме. Для этого можно применить обычный синтаксис, принятый в оболочке Unix:

$ postgres -D /usr/local/pgsql/data >logfile 2>&1 &

Важно где-либо сохранять информацию, которую выводит сервер в каналы stdout и stderr, как показано выше. Это полезно и для целей аудита, и для диагностики проблем. (Более глубоко работа с файлами журналов рассматривается в Разделе 24.3.)

Программа postgres также принимает несколько других параметров командной строки. За дополнительными сведениями обратитесь к справочной странице postgres и к следующей Главе 19.

Такой вариант запуска довольно быстро может оказаться неудобным. Поэтому для упрощения подобных задач предлагается вспомогательная программа pg_ctl. Например:

pg_ctl start -l logfile

запустит сервер в фоновом режиме и направит выводимые сообщения сервера в указанный файл журнала. Параметр -D для неё имеет то же значение, что и для программы postgres. С помощью pg_ctl также можно остановить сервер.

Обычно возникает желание, чтобы сервер баз данных сам запускался при загрузке операционной системы. Скрипты автозапуска для разных систем разные, но в составе PostgreSQL предлагается несколько типовых скриптов в каталоге

contrib/start-scripts. Для установки такого скрипта в систему требуются права root.

В различных системах приняты разные соглашения о порядке запуска служб в процессе загрузки. Во многих системах для этого используется файл /etc/rc.local или /etc/rc.d/rc.local. В других применяются каталоги init.d или rc.d. Однако при любом варианте запускаться сервер должен от имени пользователя PostgreSQL, но не root или какого-либо другого пользователя. Поэтому команду запуска обычно следует записывать в форме su postgres -c '...'. Например:

su postgres -c 'pg_ctl start -D /usr/local/pgsql/data -l serverlog'

Ниже приведены более конкретные предложения для нескольких основных ОС. (Вместо указанных нами шаблонных значений необходимо подставить правильный путь к каталогу данных и фактическое имя пользователя.)

  • Для запуска во FreeBSD воспользуйтесь файлом

    contrib/start-scripts/freebsd в дереве исходного кода PostgreSQL.

  • В OpenBSD, добавьте в файл /etc/rc.local следующие строки:

    if [ -x /usr/local/pgsql/bin/pg_ctl -a -x /usr/local/pgsql/bin/postgres ]; then
        su -l postgres -c '/usr/local/pgsql/bin/pg_ctl start -s -l /var/postgresql/log -D /usr/local/pgsql/data'
        echo -n ' postgresql'
    fi
  • В системах Linux вы можете либо добавить

    /usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data

    в /etc/rc.d/rc.local или в /etc/rc.local, либо воспользоваться файлом contrib/start-scripts/linux в дереве исходного кода PostgreSQL.

    Используя systemd, вы можете применить следующий файл описания службы (например, /etc/systemd/system/postgresql. service):

    [Unit]
    Description=PostgreSQL database server
    Documentation=man:postgres(1)
    
    [Service]
    Type=notify
    User=postgres
    ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=mixed
    KillSignal=SIGINT
    TimeoutSec=0
    
    [Install]
    WantedBy=multi-user.target

    Для использования Type=notify требуется, чтобы сервер был скомпилирован с указанием configure --with-systemd.

    Особого внимания заслуживает значение тайм-аута. На момент написания этой документации по умолчанию в systemd принят тайм-аут 90 секунд, так что процесс, не сообщивший о своей готовности за это время, будет уничтожен. Но серверу PostgreSQL при запуске может потребоваться выполнить восстановление после сбоя, так что переход в состояние готовности может занять гораздо больше времени. Предлагаемое значение 0 отключает логику тайм-аута.

  • В NetBSD можно использовать скрипт запуска для FreeBSD или для Linux, в зависимости от предпочтений.

  • В Solaris, создайте файл с именем /etc/init.d/postgresql, содержащий следующую стоку:

    su - postgres -c "/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data"

    Затем создайте символическую ссылку на него в каталоге /etc/rc3.d с именем S99postgresql

    .

Когда сервер работает, идентификатор его процесса (PID) сохраняется в файле postmaster.pid в каталоге данных. Это позволяет исключить запуск нескольких экземпляров сервера с одним каталогом данных, а также может быть полезно для выключения сервера.

18.3.1. Сбои при запуске сервера

Есть несколько распространённых причин, по которым сервер может не запуститься. Чтобы понять, чем вызван сбой, просмотрите файл журнала сервера или запустите сервер вручную (не перенаправляя его потоки стандартного вывода и ошибок) и проанализируйте выводимые сообщения. Ниже мы рассмотрим некоторые из наиболее частых сообщений об ошибках более подробно.

LOG:  could not bind IPv4 socket: Address already in use
HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
FATAL:  could not create TCP/IP listen socket

Это обычно означает именно то, что написано: вы пытаетесь запустить сервер на том же порту, на котором уже работает другой. Однако, если сообщение ядра не Адрес уже используется или подобное, возможна и другая проблема. Например, при попытке запустить сервер с номером зарезервированного порта будут выданы такие сообщения:

$ postgres -p 666
LOG:  could not bind IPv4 socket: Permission denied
HINT:  Is another postmaster already running on port 666? If not, wait a few seconds and retry.
FATAL:  could not create TCP/IP listen socket

Следующее сообщение:

FATAL:  could not create shared memory segment: Invalid argument
DETAIL:  Failed system call was shmget(key=5440001, size=4011376640, 03600).

может означать, что установленный для вашего ядра предельный размер разделяемой памяти слишком мал для рабочей области, которую пытается создать PostgreSQL (в данном примере 4011376640 байт). Возможно также, что в вашем ядре вообще отсутствует поддержка разделяемой памяти в стиле System-V. В качестве временного решения можно попытаться запустить сервер с меньшим числом буферов (shared_buffers), но в итоге вам, скорее всего, придётся переконфигурировать ядро и увеличить допустимый размер разделяемой памяти. Вы также можете увидеть это сообщение при попытке запустить несколько серверов на одном компьютере, если запрошенный ими объём разделяемой памяти в сумме превышает этот предел.

Сообщение:

FATAL:  could not create semaphores: No space left on device
DETAIL:  Failed system call was semget(5440126, 17, 03600).

не означает, что у вас закончилось место на диске. Это значит, что установленное в вашем ядре предельное число семафоров System V меньше, чем количество семафоров, которое пытается создать PostgreSQL. Как и в предыдущем случае можно попытаться обойти эту проблему, запустив сервер с меньшим числом допустимых подключений (max_connections), но в конце концов вам придётся увеличить этот предел в ядре.

Если вы получаете ошибку «illegal system call» (неверный системный вызов), то, вероятнее всего, ваше ядро вовсе не поддерживает разделяемую память или семафоры. В этом случае вам остаётся только переконфигурировать ядро и включить их поддержку.

Настройка средств IPC в стиле System V описывается в Подразделе 18.4.1.

18.3.2. Проблемы с подключениями клиентов

Хотя ошибки подключений, возможные на стороне клиента, довольно разнообразны и зависят от приложений, всё же несколько проблем могут быть связаны непосредственно с тем, как был запущен сервер. Описание ошибок, отличных от описанных ниже, следует искать в документации соответствующего клиентского приложения.

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

Это общая проблема «я не могу найти сервер и начать взаимодействие с ним». Показанное выше сообщение говорит о попытке установить подключение по TCP/IP. Очень часто объясняется это тем, что сервер просто забыли настроить для работы по протоколу TCP/IP.

Кроме того, при попытке установить подключение к локальному серверу через Unix-сокет можно получить такое сообщение:

psql: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Путь в последней строке помогает понять, к правильному ли адресу пытается подключиться клиент. Если сервер на самом деле не принимает подключения по этому адресу, обычно выдаётся сообщение ядра Connection refused (В соединении отказано) или No such file or directory (Нет такого файла или каталога), приведённое выше. (Важно понимать, что Connection refused в данном контексте не означает, что сервер получил запрос на подключение и отверг его. В этом случае были бы выданы другие сообщения, например, показанные в Разделе 20.4.) Другие сообщения об ошибках, например Connection timed out (Тайм-аут соединения) могут сигнализировать о более фундаментальных проблемах, например, о нарушениях сетевых соединений.

PostgreSQL : Документация: 10: pg_ctl : Компания Postgres Professional

Синтаксис

pg_ctl init[db] [-D каталог_данных] [-s] [-o параметры-initdb]

pg_ctl start [-D

каталог_данных] [-l имя_файла] [-W] [-t секунды] [-s] [-o параметры] [-p путь] [-c]

pg_ctl stop [-D каталог_данных] [-m s[mart] | f[ast] | i[mmediate] ] [-W] [-t секунды] [-s]

pg_ctl restart [-D каталог_данных] [-m s[mart] | f[ast] | i[mmediate] ] [-W] [-t секунды] [-s] [-o параметры] [-c]

pg_ctl reload [-D каталог_данных] [-s]

pg_ctl status [-D каталог_данных]

pg_ctl promote [-D каталог_данных

] [-W] [-t секунды] [-s]

pg_ctl kill имя_сигнала ид_процесса

В системах Microsoft Windows также:

pg_ctl register [-D каталог_данных] [-N имя_службы] [-U имя_пользователя] [-P пароль] [-S a[uto] | d[emand] ] [-e source] [-W] [-t секунды] [-s] [-o параметры]

pg_ctl unregister [-N имя_службы]

Описание

pg_ctl — это утилита для начальной инициализации, запуска, остановки, повторного запуска и управления кластером баз данных PostgreSQL (postgres). Сервер можно стартовать в ручном режиме, но pg_ctl реализует задачи направления вывода в журнал и отсоединения от терминала и группы процессов, а также предоставляет удобный интерфейс остановки кластера.

Команда init (initdb) создаёт кластер баз данных PostgreSQL, то есть коллекцию баз данных, которой будет управлять один экземпляр сервера. Эта команда вызывает программу initdb. За подробностями обратитесь к initdb.

Команда start запускает сервер. Процесс запускается в фоне, а стандартный ввод связывается с /dev/null (или nul в Windows). По умолчанию в Unix-подобных системах вывод и ошибки сервера пишутся в устройство стандартного вывода (не ошибок) pg_ctl. Вывод pg_ctl следует перенаправить в файл или процесс, например, приложение ротации журналов rotatelogs; иначе postgres будет писать вывод в управляющий терминал (в фоновом режиме) и останется в группе процессов оболочки. В Windows сообщения и ошибки сервера по умолчанию перенаправляются в терминал. Это поведение по умолчанию можно изменить и направить вывод сервера в файл, добавив ключ -l. Предпочтительными вариантами является использование -l или перенаправление вывода.

Команда stop останавливает сервер, работающий с указанным каталогом данных. Параметр -m позволяет выбрать один из трёх режимов остановки. Режим «Smart» запрещает новые подключения, а затем ожидает отключения всех существующих клиентов и завершения всех текущих процессов резервного копирования. Если сервер работает в режиме горячего резерва, восстановление и потоковая репликация будут прерваны, как только отключатся все клиенты. Режим «Fast» (выбираемый по умолчанию) не ожидает отключения клиентов и завершает все текущие процессы резервного копирования. Все активные транзакции откатываются, а клиенты принудительно отключаются, после чего сервер останавливается. Режим «Immediate» незамедлительно прерывает все серверные процессы, не выполняя процедуру штатной остановки. Этот вариант влечёт необходимость выполнить восстановление после сбоя при следующем запуске сервера.

Команда restart по сути производит остановку и последующий запуск сервера. Это позволяет изменить параметры командной строки postgres либо применить изменения в файле конфигурации, не вступающие в силу без перезапуска сервера. Если в командной строке при запуске сервера указывались относительные пути, команда restart может не выполниться, если вызвать pg_ctl не в том каталоге, где производился предыдущий запуск.

Команда reload просто посылает процессу сервера postgres сигнал SIGHUP, получив который он перечитывает свои файлы конфигурации (postgresql.conf, pg_hba.conf и т. д.). Это позволяет применить изменения параметров в файле конфигурации, не требующие полного перезапуска сервера.

Команда status проверяет, работает ли сервер в указанном каталоге данных. Если да, она выдаёт PID сервера и параметры командной строки, с которыми он был запущен. Если сервер не работает, pg_ctl возвращает код завершения 3. Если в параметрах не указан доступный каталог данных, pg_ctl возвращает код завершения 4.

Команда promote указывает серверу, работающему в режиме резерва с указанным каталогом данных, выйти из этого режима и начать операции чтения/записи.

Команда kill передаёт сигнал заданному процессу. Прежде все это полезно в Microsoft Windows, где отсутствует встроенная команда kill. Для получения списка имён поддерживаемых сигналов воспользуйтесь ключом --help.

Команда register регистрирует сервер PostgreSQL в качестве системной службы в Microsoft Windows. Параметр -S позволяет выбрать тип запуска службы: «auto» (запускать службу автоматически при загрузке системы) или «demand» (запускать службу по требованию).

Режим unregister разрегистрирует системную службу в Microsoft Windows. Эта операция отменяет действие команды register.

Переменные окружения

PGCTLTIMEOUT

Значение по умолчанию для максимального времени ожидания запуска или остановки сервера (в секундах). По умолчанию это время составляет 60 секунд.

PGDATA

Размещение каталога хранения данных по умолчанию.

Для большинства режимов pg_ctl требуется знать расположение каталога данных; поэтому если не задана переменная PGDATA, параметр -D является обязательным.

pg_ctl, как и большинство других утилит PostgreSQL, также использует переменные окружения, поддерживаемые libpq (см. Раздел 33.14).

Список дополнительных переменных, влияющих на работу сервера, можно найти в postgres.

Примеры

Запуск сервера

Запуск сервера и ожидание момента, когда он начнёт принимать подключения:

$ pg_ctl start

Чтобы запустить сервер с использованием порта 5433 и без fsync, выполните:

$ pg_ctl -o "-F -p 5433" start

Остановка сервера

Чтобы остановить сервер, выполните:

$ pg_ctl stop

Ключ -m позволяет управлять тем, как сервер будет остановлен:

$ pg_ctl stop -m smart

Повторный запуск сервера

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

$ pg_ctl restart

Но если добавляется ключ -o, он заменяет все предыдущие параметры. Эта команда осуществит перезапуск с использованием порта 5433 и без fsync:

$ pg_ctl -o "-F -p 5433" restart

Вывод состояния сервера

Ниже представлен примерный вывод pg_ctl:

$ pg_ctl status

pg_ctl: server is running (PID: 13718)
/usr/local/pgsql/bin/postgres "-D" "/usr/local/pgsql/data" "-p" "5433" "-B" "128"

Во второй строке показывается команда, которая будет выполнена в режиме перезапуска.

Как запустить сервер PostgreSQL на Mac OS X?



Последнее обновление:

Я забыл запустить команду initdb .


Выполнив эту команду

ps auxwww | grep postgres

Я вижу, что postgres не работает

> ps auxwww | grep postgres
remcat          1789   0. 0  0.0  2434892    480 s000  R+   11:28PM   0:00.00 grep postgres

В связи с этим возникает вопрос:

Как запустить сервер PostgreSQL?

Обновление:

> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
sh: /usr/local/var/postgres/server.log: No such file or directory

Обновление 2:

Прикосновение не было успешным, поэтому я сделал это вместо этого:

> mkdir /usr/local/var/postgres
> vi /usr/local/var/postgres/server.log
> ls /usr/local/var/postgres/
server.log

Но когда я пытаюсь запустить сервер Ruby на сервере Rails, я все еще вижу это:

Работает ли сервер на хосте "localhost" и принимает ли он его TCP/IP-соединения на порту 5432?

Обновление 3:

> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running

Обновление 4:

Я обнаружил, что там нет никакого файла pg_hba. conf (только файл pg_hba.conf.sample), поэтому я изменил образец и переименовал его (чтобы удалить .sample). Вот его содержание:

 # IPv4 local connections:
 host    all             all             127.0.0.1/32           trust
 # IPv6 local connections:
 host    all             all             ::1/128                trust

Но я этого не понимаю:

> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running

Также:

sudo find / -name postgresql.conf
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory

Обновление 5:

sudo pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Password:
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.

Обновление 6:

Это кажется странным:

> egrep 'listen|port' /usr/local/var/postgres/postgresql. conf
egrep: /usr/local/var/postgres/postgresql.conf: No such file or directory

Хотя, я действительно сделал это:

>sudo find / -name "*postgresql.conf*"
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
/usr/share/postgresql/postgresql.conf.sample

Вот я и сделал это:

egrep 'listen|port' /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
#listen_addresses = 'localhost'        # what IP address(es) to listen on;
#port = 5432                # (change requires restart)
                # supported by the operating system:
                #   %r = remote host and port

Вот я и попробовал это сделать:

> cp /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf
> cp /usr/share/postgresql/postgresql. conf.sample /usr/share/postgresql/postgresql.conf

Я все еще получаю тот же "Is сервер работает?" сообщение.

macos postgresql homebrew
Поделиться Источник Ramy     02 ноября 2011 в 03:36

25 ответов


  • Postgresql на Mac OS X с патчем ICU

    Кто-нибудь построил Postgresql на Mac OS X с патчем ICU Палле Гиргенсона? Если да, то с какими проблемами вы столкнулись и были ли изменения в поведении сортировки удовлетворительными? Я работаю с Postgresql 9.2 и Mac OS 10.7 и 10.8.

  • не удается запустить скрипт scala на Mac OS X

    Запуск скрипта scala в Mac OS X приводит к следующей ошибке: Не удалось установить соединение с демоном компиляции Я нашел страницу, сообщающую о той же проблеме: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=576568 Чтобы решить эту проблему, на странице было написано:: Не могли бы вы сказать,. ..



1884

Менеджер пакетов Homebrew включает в себя списки launchctl для автоматического запуска. Для получения дополнительной информации выполните команду brew info postgres .

Запускать вручную

pg_ctl -D /usr/local/var/postgres start

Остановка вручную

pg_ctl -D /usr/local/var/postgres stop

Запускать автоматически

"To есть файл launchd начать postgresql теперь и перезагрузка при входе в систему:"

brew services start postgresql


Каков результат pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start ?

Каков результат pg_ctl -D /usr/local/var/postgres status ?

Есть ли какие-либо сообщения об ошибках в server.log?

Убедитесь, что в pg_hba.conf включены tcp localhost соединений:

# IPv4 local connections:
host    all    all    127. 0.0.1/32    trust

Проверьте listen_addresses и порт в postgresql.conf:

egrep 'listen|port' /usr/local/var/postgres/postgresql.conf

#listen_addresses = 'localhost'        # What IP address(es) to listen on;
#port = 5432                # (change requires restart)

Уборка

PostgreSQL , скорее всего, был установлен через Homebrew, Fink , MacPorts или установщик EnterpriseDB.

Проверьте выходные данные следующих команд, чтобы определить, с каким менеджером пакетов он был установлен:

brew && brew list|grep postgres
fink && fink list|grep postgres
port && port installed|grep postgres

Поделиться James Allman     02 ноября 2011 в 03:55



392

Если вы хотите вручную запустить и остановить PostgreSQL (установленный через Homebrew ), то самый простой способ-это:

brew services start postgresql

и

brew services stop postgresql

Если у вас есть конкретная версия, обязательно добавьте к ней суффикс. Например:

brew services start [email protected]

Поделиться malopezcruz     16 июня 2014 в 20:18



183

У меня была почти такая же проблема, и вы процитировали команду initdb как исправление. Это тоже было решение для меня, но я не видел, чтобы кто-то разместил его здесь, так что для тех, кто его ищет:

initdb /usr/local/var/postgres -E utf8

Поделиться Yan     27 октября 2012 в 19:49


  • Как установить OpenERP на Mac OS X Mavericks?

    Я хочу установить OpenERP v7 на Mac OS X. Как я могу его установить? Я попытался установить его brew install postgresql мне удалось установить postgresql но когда я создаю пользователя со следующей командой createuser openerp я получил ошибку типа createuser:command not found я также получил. ..

  • Как я могу запустить две копии PostgreSQL на Mac OS X?

    Мне нужно запустить интеграционные тесты для системы, которая имеет как локальный, так и удаленный сервер баз данных; я бы хотел, чтобы на моем dev Mac было два сервера PostgreSQL на разных портах. Обычно я использую Postgres.app - можно ли как-то настроить его для запуска двух экземпляров?



109

Если ваш компьютер был внезапно перезапущен


Возможно, вы захотите запустить сервер PostgreSQL, но этого не произошло.

Во-первых, вы должны удалить файл /usr/local/var/postgres/postmaster.pid . Затем вы можете перезапустить службу, используя один из многих других упомянутых методов в зависимости от вашей установки.

Вы можете проверить это, посмотрев на журналы PostgreSQL, чтобы увидеть, что может происходить: tail -f /usr/local/var/postgres/server.log

Для конкретной версии:

tail -f /usr/local/var/[email protected][VERSION_NUM]/server. log

For example:

tail -f /usr/local/var/[email protected]/server.log

Поделиться rafaelportela     28 апреля 2016 в 14:09



82

Другой подход-использование lunchy gem (обертка для launchctl):

brew install postgresql
initdb /usr/local/var/postgres -E utf8
gem install lunchy

Для начала PostgreSQL:

lunchy start postgres

Чтобы остановить PostgreSQL:

lunchy stop postgres

Для получения дополнительной информации см.: " Как установить PostgreSQL на Mac с Homebrew и Lunchy "

Поделиться pisaruk     22 апреля 2013 в 14:50



74

Вот мои два цента: я сделал псевдоним для postgres pg_ctl и поместил его в файл . bash_profile (моя версия PostgreSQL-9.2.4, а путь к базе данных - /Library/PostgreSQL/9.2/data ).

alias postgres.server="sudo -u postgres pg_ctl -D /Library/PostgreSQL/9.2/data"

Запустите новый terminal.

А потом? Вы можете запустить/остановить свой сервер PostgreSQL с помощью этого:

postgres.server start
postgres.server stop

Поделиться Kenial     21 апреля 2013 в 05:22



34

Самый чистый способ добраться до start/stop/restart PostgreSQL, если вы установили его через brew , - это просто выгрузить и/или загрузить конфигурационный файл launchd , который поставляется вместе с установкой:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

Первая строка остановит PostgreSQL, а вторая-запустит его. Нет никакой необходимости указывать какие-либо каталоги данных и т. д., Так как все находится в этом файле.

Поделиться Markus Amalthea Magnuson     20 мая 2015 в 11:49



29

Чтобы запустить сервер PostgreSQL:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

Чтобы завершить работу сервера PostgreSQL:

pg_ctl -D /usr/local/var/postgres stop -s -m fast

Вы также можете создать псевдоним через CLI, чтобы сделать его проще:

alias pg-start='pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start'
alias pg-stop='pg_ctl -D /usr/local/var/postgres stop -s -m fast'

С их помощью вы можете просто ввести "pg-start", чтобы запустить PostgreSQL и "pg-stop", чтобы закрыть его.

Поделиться Todd     27 июня 2013 в 13:55



23

Для тестовых целей, я думаю, что приложение PostgreSQL - это лучший вариант!

Запустите приложение, и сервер заработает.

Закройте приложение, и сервер отключится.

http://postgresapp.com/

Поделиться Crystian Leão     10 апреля 2013 в 20:12



10

При установке PostgreSQL с помощью Homebrew ,

brew install postgres

в конце вывода вы увидите следующие методы запуска сервера:

To have launchd start postgresql at login:
    ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
Then to load postgresql now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Or, if you don't want/need launchctl, you can just run:
    postgres -D /usr/local/var/postgres

Я думаю, что это лучший способ.

Для удобства вы можете добавить псевдоним в свой файл .profile.

Поделиться jkaluzka     13 мая 2014 в 10:23



8

Для быстрой одноразовой тестовой базы данных вы можете запустить сервер на переднем плане.

Инициализируйте новую базу данных PostgreSQL в новом каталоге:

mkdir db
initdb db -E utf8
createdb public

Запустите сервер на переднем плане ( Ctrl + C для остановки сервера):

postgres -d db

В другом сеансе shell подключитесь к серверу

psql -d public

Поделиться k107     07 мая 2015 в 16:38



8

У меня была та же проблема, и я выполнил все обновления с первого поста. Но после проверки лог-файла,

/usr/local/var/postgres/server.log

Я вижу истинную причину:

FATAL:  data directory "/usr/local/var/postgres" has group or world access
DETAIL:  Permissions should be u=rwx (0700).

После изменения разрешений на этот каталог,

chmod 0700 /usr/local/var/postgres

сервер PostgreSQL запустился.

Каждый раз проверяйте файл журнала.

Поделиться Roosh     09 марта 2016 в 08:39



6

PostgreSQL интегрирован в Server.app , доступный через App Store в Mac OS X v10.8 (Mountain Lion). Это означает, что он уже настроен, и вам нужно только запустить его, а затем создать пользователей и базы данных.

Совет : Не начинайте с определения $PGDATA и так далее. Возьмите расположение файлов как есть.

У вас будет этот файл: /Библиотека/Сервер/PostgreSQL/Config/org.postgresql.postgres.plist

Начать:

sudo serveradmin start postgres

Процесс начался с аргументов:

/Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -Д /Library/Server/PostgreSQL/Data -c listen_addresses=127.0.0.1,::1 -c log_connections=на -c каталог_журнала=/Library/Logs/PostgreSQL -c log_filename=PostgreSQL. log -c log_line_prefix=%Т -c log_lock_waits=на -c log_statement=ddl -c logging_collector=на -c unix_socket_directory=/private/var/pgsql_socket -c unix_socket_group=_postgres -c unix_socket_permissions=0770

Вы можете sudo:

sudo -u _postgres psql template1

Или подключиться:

psql -h localhost -U _postgres postgres

Вы можете найти каталог данных, версию, состояние работы и так далее с помощью

sudo serveradmin fullstatus postgres

Поделиться bbaassssiiee     17 мая 2013 в 22:49


Поделиться substancejoy     28 февраля 2015 в 00:44



5

# Remove old database files (if there was any)
$rm -rf /usr/local/var/postgres  # Install the binary

$ brew install postgresql

# init it
$ initdb /usr/local/var/postgres

# Start the PostgreSQL server
$ postgres -D /usr/local/var/postgres

# Create your database
$ createdb mydb

# Access the database
$ psql mydb
psql (9. 0.1)
Type "help" for help.

Поделиться zee     21 января 2018 в 23:41



4

Для целей разработки одним из самых простых способов является установка Postgres.app с официального сайта . Его можно запустить/остановить из папки Applications или с помощью следующих команд в terminal:

# Start
open -a Postgres

# Stop
killall Postgres
killall postgres

Поделиться Melnosta     20 октября 2013 в 20:29



4

Если вы установили его с помощью Homebrew, то приведенной ниже команды должно быть достаточно.

brew services restart postgresql

Иногда это может не сработать. В этом случае следующие две команды определенно должны работать:

rm /usr/local/var/postgres/postmaster. pid

pg_ctl -D /usr/local/var/postgres start

Поделиться shanu khera     15 июня 2019 в 15:34



2

$ brew upgrade postgres

починил его для меня.

Это, конечно же, обновит вашу версию PostgreSQL и обновит/установит любые зависимости.

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

Поделиться thedanotto     29 декабря 2016 в 18:43



1

Ни один из предыдущих ответов не исправил эту проблему для меня, несмотря на получение тех же сообщений об ошибках.

Я смог восстановить и запустить свой экземпляр, удалив существующий файл postmaster.pid, который был заблокирован и не допускал подключений.

Поделиться Swedendrift     04 января 2017 в 10:03



1

Если вы установили PostgreSQL с помощью установщика EnterpriseDB, то то, что предложил Кениал, - это путь:

sudo -u postgres pg_ctl -D /Library/PostgreSQL/{version}/data start
sudo -u postgres pg_ctl -D /Library/PostgreSQL/{version}/data stop

Поделиться hithacker     16 июля 2019 в 05:59



1

Для MacPorts просто используйте команду load/unload и имя порта запущенного сервера:

sudo port load postgresql96-server
- or -
sudo port unload postgresql96-server

таким образом, вам не нужно помнить, где находится файл /Library/LaunchDaemons/org.macports.postgresql96.plist .

Поделиться Steve     17 августа 2018 в 03:28


Поделиться dewijones92     04 февраля 2019 в 16:23



1

Это сработало для меня ( macOS v10. 13 (High Sierra)):

sudo -u postgres /Library/PostgreSQL/9.6/bin/pg_ctl start -D /Library/PostgreSQL/9.6/data

Или сначала

cd /Library/PostgreSQL/9.6/bin/

Поделиться Dmitry Evgrafoov     19 августа 2019 в 07:23



1

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

$ sudo su postgres
bash-3.2$ /Library/PostgreSQL/12/bin/pg_ctl -D /Library/PostgreSQL/12/data/ stop

Поделиться J_F4C     13 февраля 2020 в 12:28



0

для Mac OS X, мне очень нравится LaunchRocket для этого и других фоновых сервисов, которые я использовал в разработке.

На этом сайте есть хорошие инструкции по установке .

Это дает вам хороший экран в ваших системных настройках, который позволяет запускать, перезагружать, рутировать и запускать при входе в систему.

Поделиться theUtherSide     20 октября 2016 в 02:38


Похожие вопросы:


Как запустить IDEA IntelliJ на Mac OS X с JDK 7?

Я использую Mac OS X 10.8.2 и использую JDK 7. Теперь я скачал последнюю версию IDEA IntelliJ, 11. Но это, кажется, не начинается без JDK 6. Есть ли какой-нибудь обходной путь? Как я могу запустить...


Сервер CardDAV, работающий на Mac OS X

Я ищу простой сервер CardDAV, который работает на Mac OS X. Это может быть проект сервера с открытым исходным кодом для компиляции или просто некоторые скрипты для запуска на Apache. (Я не хочу...


Существует ли PostgreSQL в OS X Mavericks?

Я знал, что в OS X Mountain Lion установлена версия PostgreSQL, и если вы хотите работать с этим движком базы данных, вы должны установить новую версию и внести некоторые изменения (. ..


Postgresql на Mac OS X с патчем ICU

Кто-нибудь построил Postgresql на Mac OS X с патчем ICU Палле Гиргенсона? Если да, то с какими проблемами вы столкнулись и были ли изменения в поведении сортировки удовлетворительными? Я работаю с...


не удается запустить скрипт scala на Mac OS X

Запуск скрипта scala в Mac OS X приводит к следующей ошибке: Не удалось установить соединение с демоном компиляции Я нашел страницу, сообщающую о той же проблеме:...


Как установить OpenERP на Mac OS X Mavericks?

Я хочу установить OpenERP v7 на Mac OS X. Как я могу его установить? Я попытался установить его brew install postgresql мне удалось установить postgresql но когда я создаю пользователя со следующей...


Как я могу запустить две копии PostgreSQL на Mac OS X?

Мне нужно запустить интеграционные тесты для системы, которая имеет как локальный, так и удаленный сервер баз данных; я бы хотел, чтобы на моем dev Mac было два сервера PostgreSQL на разных портах. ...


Установка Timescaledb на Mac OS X, PostgreSQL 9.6 не найдена

Я пытаюсь установить Timescaledb на свой Mac, http:/ / docs.timescale.com/getting-started/installation?OS=mac&method=Source . Требование для этого-PostgreSQL 9.6, поэтому я скачал postgres.app....


Как запустить сервер AgensGraph на Mac OS X?

После загрузки AgensGraph из https://github.com/bitnine-oss/agensgraph . Когда настройка и установка закончены, я пытаюсь подключить AgensGraph. Он не такой : agens: could not connect to server: No...


Как добавить Postgres на Mac OS с MAMP в PATH?

Я следую этому учебнику о том, как запустить Postgres на MAC OS X с помощью MAMP . Но я, кажется, не могу добавить PostgreSQL к моей переменной PATH. Когда я запускаю export...

Как запустить сервер PostgreSQL в Mac OS X?

ЗАКЛЮЧИТЕЛЬНОЕ ОБНОВЛЕНИЕ:

Я забыл запустить initdbкоманду.

</ FINAL UPDATE>

запустив эту команду

ps auxwww | grep postgres

Я вижу, что Postgres не работает

> ps auxwww | grep postgres
remcat          1789   0. 0  0.0  2434892    480 s000  R+   11:28PM   0:00.00 grep postgres

возникает вопрос: как запустить сервер postgresql?

Обновить:

>pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
sh: /usr/local/var/postgres/server.log: No such file or directory

обновление 2:

Касание не было успешным, поэтому я сделал это вместо:

> mkdir /usr/local/var/postgres
> vi /usr/local/var/postgres/server.log
> ls /usr/local/var/postgres/          
server.log

Но когда я пытаюсь запустить сервер rails, я все еще вижу это:

Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?

обновление 3:

> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running

обновление 4:

Я обнаружил, что там не было pg_hba.conf (только pg_hba.conf.sample), поэтому я изменил образец и переименовал его (чтобы удалить . sample). Вот содержимое:

 # IPv4 local connections:
 host    all             all             127.0.0.1/32           trust
 # IPv6 local connections:
 host    all             all             ::1/128                trust

но я не понимаю этого

> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start     
server starting
> pg_ctl -D /usr/local/var/postgres status                                     
pg_ctl: no server running

также:

sudo find / -name postgresql.conf
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory

обновление 5:

sudo pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Password:
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.

обновление 6:

это кажется странным

> egrep 'listen|port' /usr/local/var/postgres/postgresql. conf
egrep: /usr/local/var/postgres/postgresql.conf: No such file or directory

хотя я сделал это:

>sudo find / -name "*postgresql.conf*"
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
/usr/share/postgresql/postgresql.conf.sample

поэтому я сделал это:

egrep 'listen|port' /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample 
#listen_addresses = 'localhost'     # what IP address(es) to listen on;
#port = 5432                # (change requires restart)
                # supported by the operating system:
                #   %r = remote host and port

поэтому я попробовал это:

> cp /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf        
> cp /usr/share/postgresql/postgresql.conf. sample /usr/share/postgresql/postgresql.conf 

по-прежнему получает тот же "Сервер работает?" сообщение.

Установка Postgresql на Centos 7

В статье рассмотрим установку и первоначальную настройку различных версий сервера PostgreSQL на ОС CentOS 7

PostgreSQL 9.2

Установка

Эта версия входит в стандартные yum репозиториях. Поэтому для установки просто введите команду

yum install postgresql postgresql-server

Инициализируем базу

postgresql-setup initdb

Запускаем и добавляем в автозагрузку, заодно и проверим статус что сервер нормально запустился

systemctl enable postgresql; systemctl start postgresql; systemctl status postgresql

Если все нормально должны увидеть что postgres запущен.

Настройка

Сейчас в вашей СУБД есть только один пользователь — postgres. Рекомендуется не использовать данного пользователя для работы со своими базами данных, а создавать для каждой базы отдельного пользователя (или несколько при необходимости).
Задаем пароль на пользователя postgres

passwd postgres

Подключаемся к серверу postgres

sudo -u postgres psql

Создаем нового пользователя

create user username with password 'password';

Вместо username и password подставьте свои имя пользователя и пароль.

Файлы конфигурации находятся в каталоге /var/lib/pgsql/data, в котором находятся два основных конфигурационных файла.

  • postgresql.conf — основной файл с настройками СУБД
  • pg_hba.conf — файл с настройками доступа для клиентов. В частности, тут можно указать каким пользователям с каких IP-адресов можно подключаться к определенным БД, и требуется ли проверять пароль пользователя, и если требуется — каким методом.

Редактируем файл postgresql.conf.

Для начала разрешим подключение к СУБД из локальной сети (по умолчанию подключение разрешено только с localhost).
Раскомментируем строку

listen_addresses = ‘localhost’

исправим её на

listen_addresses = ‘localhost,10.10.10.1’

Здесь 10.10.10.1 — ip адрес интерфейса который смотрит в локальную сеть


Теперь разрешим подключение из локальной сети с любых хостов и к любым БД, для этого в конец файла pg_hba.conf добавим:

# localnet
host  all  all  10.10.10.0/24 md5

Рестартуем postgresql

systemctl restart postgresql

PostgreSQL 11

Установка

Более свежую версию можно найти на официальном сайте по ссылке https://download.postgresql.org/pub/repos/yum/. На момент написания статьи это 11.2 версия. Добавляем репозиторий.

yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7.6-ppc64le/pgdg-centos11-11-2.noarch.rpm

Устанавливаем postgresql

yum install postgresql11-server

Инициализируем базу

/usr/pgsql-11/bin/postgresql-11-setup initdb

Запускаем сервер и проверяем что все нормально

systemctl enable postgresql-11; systemctl start postgresql-11; systemctl status postgresql-11

Настройка

Первоначальные настройки пользователей и доступа к СУБД аналогичны рассмотренным выше. Только конфигурационные файлы находятся в директории /var/lib/pgsql/11/data/. После внесения изменений не забудьте перезапустить postgres командой

systemctl restart postgresql-11

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Установка СУБД PostgreSQL на Windows

Инструкция по установке СУБД PostgreSQL и загрузке дополнительных инструментов с помощью Stack Builder.

Что это такое?

PostgreSQL - объектно-реляционная система управления базами данных, одна из самых популярных на текущий момент, разрабатывается группой добровольцев. PostgreSQL не контролируется какой-либо корпорацией или частными лицами, а исходный код доступен бесплатно.

Stack Builder - система для установки дополнительных инструментов и драйверов для PostgreSQL.

Загрузка и установка

Для загрузки файлов перейдите на сайт разработчиков и выберете нужную версию.

Запустите скачанный файл для начала процесса установки.

Укажите директорию, в которой будет находиться PostgreSQL.

Укажите директорию для хранения данных.

Введите и подтвердите пароль пользователя postgres, который является пользователем по умолчанию.

Укажите порт, на котором будет запущен сервер СУБД.

Выберете локализацию, рекомендуем выбирать англоязычную локаль во избежании проблем с кодировкой.

Теперь СУБД PostgreSQL готова к установке.

По завершении будет предложено запустить Stack Builder для установки дополнительных инструментов и драйверов.

Установка инструментов с помощью Stack Builder

Stack Builder можно открыть после того как СУБД поставлена, или запустив файл stackbuilder.exe, который находится в каталоге bin, по пути, например:

C:\Program Files\PostgreSQL\9.6\bin\stackbuilder.exe

Запустите приложение и выберите ваш локальный сервер на порту 5432.

Выберите приложения, которые необходимо установить.

Уточните каталог для загрузки.

Далее файл будет загружен и можно перейти к его установке.

По завершении установки закройте Stack Builder.

На этом процесс завершен.

Подключение к PostgreSQL

Для подключения к серверу СУБД в командной строке перейдите в каталог bin, по пути установки, например:

cd "C:\Program Files\PostgreSQL\9.6\bin"

Подключитесь к консоли PostgreSQL с помощью следующей команды:

.\psql.exe -U postgres

Для просмотра справочной информации используйте команду:

help

Пример работы с данной СУБД рассмотрен в инструкции Установка PostgreSQL на Ubuntu 18.04.

 

P. S. Другие инструкции:

Поделиться в соцсетях:

Спасибо за Вашу оценку! К сожалению, проголосовать не получилось. Попробуйте позже

ru

191014 Санкт-Петербург ул. Кирочная, 9

+7(812)313-88-33 235 70 1cloud ltd 2019-01-14 Установка PostgreSQL на Windows Server

191014 Санкт-Петербург ул. Кирочная, 9

+7(812)313-88-33 235 70 1cloud ltd 2019-01-14 Установка PostgreSQL на Windows Server 600 auto

PostgreSQL: Документация: 9.1: Запуск сервера базы данных

Прежде чем кто-либо сможет получить доступ к базе данных, вы должны запустить сервер базы данных. Программа сервера базы данных называется postgres. Постгрес Программа должна знать, где найти данные, которые она должна использовать. Это делается с помощью опции -D. Таким образом, Самый простой способ запустить сервер:

$  postgres -D / usr / local / pgsql / data 
 

, что оставит сервер работающим на переднем плане.Этот необходимо выполнить при входе в учетную запись пользователя PostgreSQL. Без -D сервер попытается использовать каталог данных названный переменной окружения PGDATA. Если эта переменная также не указана, произойдет сбой.

Обычно лучше запускать postgres в фоновом режиме. Для этого используйте обычный синтаксис оболочки Unix:

$  postgres -D / usr / local / pgsql / data> файл журнала 2> & 1 & 
 

Важно где-то хранить выходные данные сервера stdout и stderr, как показано выше.Это поможет в целях аудита и диагностики проблем. (Видеть Раздел 23.3 для более подробной информации подробное обсуждение обработки файлов журнала.)

Программа postgres также требует количество других параметров командной строки. Для получения дополнительной информации см. справочную страницу postgres и главу 18 ниже.

Этот синтаксис оболочки может быстро стать утомительным. Следовательно программа-оболочка pg_ctl предназначена для упрощения некоторых задачи. Например:

pg_ctl start -l файл журнала
 

запустит сервер в фоновом режиме и поместит вывод в названный файл журнала. Параметр -D имеет то же значение, что и postgres. pg_ctl также способен остановить сервер.

Обычно вам нужно запускать сервер базы данных, когда компьютер загружается. Сценарии автозапуска зависят от операционной системы. Некоторые из них распространяются с PostgreSQL в каталоге contrib / start-scripts. Установка одного потребуются права root.

Различные системы имеют разные условные обозначения для запуска демоны во время загрузки. Во многих системах есть файл / etc / rc.local или /etc/rc.d/rc.local. Другие используют init.d или rc.d каталоги. Что бы вы ни делали, сервер должен запускаться Учетная запись пользователя PostgreSQL а не рутом или каким-либо другой пользователь. Поэтому вам, вероятно, следует сформировать свои команды используя su postgres -c '...'. Для пример:

su postgres -c 'pg_ctl start -D / usr / local / pgsql / data -l serverlog'
 

Вот еще несколько предложений для конкретных операционных систем. (В в каждом случае обязательно используйте правильный каталог для установки и имя пользователя, где мы показываем общие значения.)

  • Для FreeBSD посмотрите на файл contrib / start-scripts / freebsd в исходнике PostgreSQL распределение.

  • В OpenBSD добавьте следующие строки в файл /etc/rc.local:

    если [-x / usr / local / pgsql / bin / pg_ctl -a -x / usr / local / pgsql / bin / postgres]; тогда
        su -l postgres -c '/ usr / local / pgsql / bin / pg_ctl start -s -l / var / postgresql / log -D / usr / local / pgsql / data'
        эхо -n 'postgresql'
    фи
     
  • В системах Linux либо добавить

    / usr / local / pgsql / bin / pg_ctl start -l файл журнала -D / usr / local / pgsql / data
     

    в / etc / rc.d / rc.local или /etc/rc.local или посмотрите файл contrib / start-scripts / linux в Исходный код PostgreSQL распределение.

  • В NetBSD используйте либо Скрипты запуска FreeBSD или Linux, в зависимости от предпочтение.

  • В Solaris создайте файл называется /etc/init.d/postgresql, который содержит следующую строку:

    su - postgres -c "/ usr / local / pgsql / bin / pg_ctl start -l logfile -D / usr / local / pgsql / data"
     

    Затем создайте на него символическую ссылку в / etc / rc3.d как S99postgresql.

Во время работы сервера его PID сохраняется в файле postmaster.pid в каталоге данных. Это используется для предотвращения запуска нескольких экземпляров сервера в тот же каталог данных, а также может использоваться для выключения сервер.

Существует несколько распространенных причин, по которым сервер может не Начало. Проверьте файл журнала сервера или запустите его вручную (без перенаправления стандартного вывода или стандартной ошибки) и см. какие сообщения об ошибках появляются.Ниже мы объясним некоторые из самых более подробно о распространенных сообщениях об ошибках.

ЖУРНАЛ: не удалось привязать сокет IPv4: адрес уже используется
ПОДСКАЗКА: Другой почтмейстер уже работает на порту 5432? Если нет, подождите несколько секунд и повторите попытку.
FATAL: не удалось создать прослушивающий сокет TCP / IP
 

Обычно это означает именно то, что он предлагает: вы пытались начать другой сервер на том же порту, где он уже запущен. Однако, если сообщение об ошибке ядра не Адрес уже используется или какой-либо вариант из этого может быть другая проблема.Например, попытка запустить сервер на зарезервированном номере порта может вызвать что-то вроде:

$  postgres -p 666 
ЖУРНАЛ: не удалось привязать сокет IPv4: в разрешении отказано
ПОДСКАЗКА: Другой почтмейстер уже работает на порту 666? Если нет, подождите несколько секунд и повторите попытку. 
FATAL: не удалось создать прослушивающий сокет TCP / IP
 

Сообщение типа:

FATAL: не удалось создать сегмент разделяемой памяти: недопустимый аргумент
ДЕТАЛИ: сбойный системный вызов: shmget (ключ = 5440001, размер = 4011376640, 03600).

, вероятно, означает ограничение вашего ядра на размер разделяемого объем памяти меньше, чем рабочая область, которую PostgreSQL пытается создать (4011376640 байтов в этом примере). Или это может означать, что у вас нет Поддержка общей памяти в стиле System-V, настроенная в вашем ядро вообще. В качестве временного решения вы можете попробовать запустить сервер с меньшим, чем обычно, количеством буферов (общие_буферы). В конечном итоге вы захотите перенастроить ядро, чтобы увеличить разрешенный размер разделяемой памяти.Вы также можете увидеть это сообщение при попытке запустить несколько серверов на одном компьютере, если их общее запрошенное пространство превышает предел ядра.

Ошибка типа:

FATAL: не удалось создать семафоры: на устройстве не осталось места
ДЕТАЛИ. Неудачный системный вызов: semget (5440126, 17, 03600).
 

не означает у вас закончилось место на диске. Это означает ограничение вашего ядра на количество Систем V семафоров меньше, чем количество, которое PostgreSQL хочет создать.Как и выше, вы может решить проблему, запустив сервер с уменьшенным количеством разрешенных подключений (max_connections), но со временем вы захотите увеличить лимит ядра.

Если вы получите "нелегальную систему вызов "ошибка, вполне вероятно, что разделяемая память или семафоры вообще не поддерживаются в вашем ядре. В этом если ваш единственный вариант - перенастроить ядро, чтобы включить эти особенности.

Подробная информация о настройке системы V Объекты IPC приведено в разделе 17.4.1.

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

psql: не удалось подключиться к серверу: в соединении отказано
        Сервер работает на хосте server.joe.com и принимает
        TCP / IP-соединения на порту 5432?
 

Это общий "Я не смог найти сервер поговорить с "отказом.Это похоже на то, когда Предпринята попытка связи TCP / IP. Распространенная ошибка - забудьте настроить сервер на разрешение TCP / IP-соединений.

В качестве альтернативы вы получите это при попытке использования домена Unix. соединение сокета с локальным сервером:

psql: не удалось подключиться к серверу: нет такого файла или каталога
        Сервер работает локально и принимает
        соединения на сокете домена Unix "/tmp/.s.PGSQL.5432"?
 

Последняя строка полезна для проверки того, что клиент пытаюсь подключиться к нужному месту.Если на самом деле нет сервер, работающий там, сообщение об ошибке ядра обычно быть либо Connection отказано или Нет такого файла или каталог , как показано на рисунке. (Важно понимать что соединение отклонено в этот контекст не означает, что сервер получил ваш запрос на подключение и отклонил Это. В этом случае появится другое сообщение, как показано на Раздел 19.4.) Другие сообщения об ошибках, такие как Connection timed out , могут указывать на более фундаментальные проблемы, такие как отсутствие сети возможность подключения.

Как запустить и остановить сервер PostgreSQL?

В этом посте мы собираемся выяснить, как запустить, остановить и перезапустить сервер PostgreSQL в macOS, Linux и Windows.

1. В macOS

Если вы установили PostgreSQL через Homebrew:

  pg_ctl -D / usr / local / var / postgres start
  
  pg_ctl -D / usr / local / var / postgres stop
  
  • Чтобы запустить сервер PostgreSQL сейчас и перезапустить при входе в систему:
  brew services start postgresql
  
  пивоваренные службы остановить postgresql
  

Если вам нужен простой способ управления локальными серверами баз данных PostgreSQL, используйте DBngin . Достаточно одного щелчка мыши, чтобы начать, и другого щелчка, чтобы выключить. Никаких зависимостей, не требуется командная строка, несколько драйверов, несколько версий и несколько портов. И это бесплатно.


2. В Windows

Во-первых, вам нужно найти каталог базы данных PostgreSQL, это может быть что-то вроде C: \ Program Files \ PostgreSQL \ 10.4 \ data . Затем откройте командную строку и выполните эту команду:

  pg_ctl -D "C: \ Program Files \ PostgreSQL \ 9.6 \ data" начать
  
  pg_ctl -D "C: \ Program Files \ PostgreSQL \ 9.6 \ data "стоп
  
  pg_ctl -D "C: \ Program Files \ PostgreSQL \ 9.6 \ data" перезапуск
  

Другой способ:

  • Открыть окно запуска с помощью Winkey + R
  • Тип services.msc
  • Поиск службы Postgres в зависимости от установленной версии.
  • Нажмите «Остановить», «запустить» или перезапустить опцию обслуживания.

3. В Linux

Обновите и установите PostgreSQL 10.4

  sudo apt-get update
sudo apt-get install postgresql-10.4
  

По умолчанию пользователь postgres не имеет пароля и, следовательно, может подключиться, только если запущен пользователем системы postgres. Следующая команда назначит его:

  sudo -u postgres psql -c "ИЗМЕНИТЬ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ postgres 'postgres';"
sudo -u postgres psql -c "СОЗДАТЬ БАЗУ ДАННЫХ testdb;"
  
  • Запустить сервер PostgreSQL
  sudo service postgresql start
  
  • Остановить сервер PostgreSQL:
  sudo service postgresql stop
  

Нужен хороший инструмент с графическим интерфейсом для PostgreSQL в MacOS и Windows? TablePlus - это современный собственный инструмент с элегантным графическим интерфейсом, который позволяет одновременно управлять несколькими базами данных, такими как MySQL, PostgreSQL, SQLite, Microsoft SQL Server и другими.

Загрузить TablePlus для Mac . В любом случае это бесплатно!

Не на Mac? Загрузите TablePlus для Windows .

404 | Микро Фокус

  • Профессиональные услуги

    Сформируйте свою стратегию и преобразуйте гибридную ИТ-среду.


  • Профессиональные услуги по продуктам
  • Аналитика и большие данные

    Помогите вам внедрить безопасность в цепочку создания стоимости ИТ и наладить сотрудничество между ИТ-отделами, приложениями и службами безопасности.

  • Кибербезопасность

    Помогите вам быстрее реагировать и получить конкурентное преимущество благодаря гибкости предприятия.

  • DevOps

    Ускорьте получение результатов гибридного облака с помощью услуг по консультированию, трансформации и внедрению.

  • Консультации по цепочке создания стоимости IT4IT

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

  • Управление доставкой приложений

    Услуги стратегического консалтинга для разработки вашей программы цифровой трансформации.

  • Жизненный цикл мобильного приложения

    Полнофункциональное моделирование сценариев использования с предварительно созданными интеграциями в портфеле программного обеспечения Micro Focus, демонстрирующее реальный сценарий использования

  • Управление гибридным облаком и брокерские услуги

    Услуги экспертной аналитики безопасности, которые помогут вам быстро спроектировать, развернуть и проверить реализацию технологии безопасности Micro Focus.

  • Автоматизация ЦОД

    Служба интеграции и управления услугами, которая оптимизирует доставку, гарантии и управление в условиях нескольких поставщиков.

  • Управление операциями

    Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.

  • Управление услугами

    Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.

  • Vertica

    Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.

  • Глобальная аутентификация продукта

    Мобильные услуги, которые обеспечивают производительность и ускоряют вывод продукта на рынок без ущерба для качества.

  • Управляемые службы

    Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.

  • Модельные офисы

    Комплексные услуги по работе с большими данными для продвижения вашего предприятия.

  • 404 | Микро Фокус

  • Профессиональные услуги

    Сформируйте свою стратегию и преобразуйте гибридную ИТ-среду.


  • Профессиональные услуги по продуктам
  • Аналитика и большие данные

    Помогите вам внедрить безопасность в цепочку создания стоимости ИТ и наладить сотрудничество между ИТ-отделами, приложениями и службами безопасности.

  • Кибербезопасность

    Помогите вам быстрее реагировать и получить конкурентное преимущество благодаря гибкости предприятия.

  • DevOps

    Ускорьте получение результатов гибридного облака с помощью услуг по консультированию, трансформации и внедрению.

  • Консультации по цепочке создания стоимости IT4IT

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

  • Управление доставкой приложений

    Услуги стратегического консалтинга для разработки вашей программы цифровой трансформации.

  • Жизненный цикл мобильного приложения

    Полнофункциональное моделирование сценариев использования с предварительно созданными интеграциями в портфеле программного обеспечения Micro Focus, демонстрирующее реальный сценарий использования

  • Управление гибридным облаком и брокерские услуги

    Услуги экспертной аналитики безопасности, которые помогут вам быстро спроектировать, развернуть и проверить реализацию технологии безопасности Micro Focus.

  • Автоматизация ЦОД

    Служба интеграции и управления услугами, которая оптимизирует доставку, гарантии и управление в условиях нескольких поставщиков.

  • Управление операциями

    Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.

  • Управление услугами

    Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.

  • Vertica

    Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.

  • Глобальная аутентификация продукта

    Мобильные услуги, которые обеспечивают производительность и ускоряют вывод продукта на рынок без ущерба для качества.

  • Управляемые службы

    Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.

  • Модельные офисы

    Комплексные услуги по работе с большими данными для продвижения вашего предприятия.

  • linux mint - Как перезапустить Postgresql

    Попробуйте это как root (возможно, вы можете использовать sudo или su ):

      /etc/init.d/postgresql перезапуск
      

    Без каких-либо аргументов сценарий также дает вам подсказку о том, как перезапустить конкретную версию

      [Укбар @ Фейнман ~] / etc / init.d / postgresql
    Использование: /etc/init.d/postgresql {start | stop | restart | reload | force-reload | status} [версия ...]
      

    Точно так же, если он у вас есть, вы также можете использовать инструмент service :

      [Uqbar @ Feynman ~] сервис postgresql
    Использование: /etc/init.d/postgresql {start | stop | restart | reload | force reload | status} [версия ...]
      

    Обратите внимание на необязательный завершающий аргумент [версия ...] . Это предназначено для того, чтобы вы, пользователь, могли работать с определенной версией, если у вас было несколько версий.Таким образом, вы можете перезапустить версию X , оставив при этом версии Y и Z нетронутыми и работающими.

    Наконец, если вы используете systemd, вы можете использовать systemctl следующим образом:

      [Uqbar @ Feynman ~] systemctl status postgresql
    ● postgresql.service - сервер базы данных PostgreSQL.
       Загружено: загружено (/usr/lib/systemd/system/postgresql.service; включено; предустановка поставщика: отключено)
       Активен: активен (работает) с среды 14.11.2017 12:33:35 CET; 7мин назад
    ...
      

    Вы можете заменить status на stop , start or restart , а также другие действия. Пожалуйста, обратитесь к документации для получения полной информации. Для работы с несколькими параллельными версиями синтаксис немного отличается. Например, чтобы остановить v12 и перезагрузить v13 , вы можете запустить:

      systemctl остановить службу postgresql-12.
    systemctl перезагрузить postgresql-13.
      

    Спасибо @Jojo за то, что указал мне на этот самый.Наконец, имейте в виду, что разрешения root могут потребоваться для неинформативных задач, как и в других случаях, рассмотренных ранее.

    pg_ctl

    pg_ctl

    pg_ctl - инициализация, запуск, остановка или управление сервером PostgreSQL

    Синопсис

    pg_ctl init [db] [ -D ] [ -o initdb-options ]

    pg_ctl start [ -D datadir ] [ -l ] имя_файла [ -t секунд ] [ -s ] [ -o опции ] [ -p путь ] [ -c ]

    27 pg0002ct стоп [ -D datadir ] [ -m с [магазин] | f [ast] | i [средний] ] [ -W ] [ -t секунд ] [ -s ]

    pg_ctl перезапуск [ -D datadir -m] [ с [магазин] | f [ast] | i [средний] ] [ -W ] [ -t секунд ] [ -s ] [ -o опции ] [ -c ]

    pg_ctl перезагрузка -D datadir ] [ -s ]

    pg_ctl status [ -D datadir ]

    pg_ct datadir ] [ -W ] [ -t секунд ] [ -s ]

    pg_ctl logrotate [ -D datadirs] ]

    pg_ctl kill имя_сигнала process_id

    В Microsoft Windows также:

    pg_ctl 9 -D [ 0175 datadir ] [ -N имя_службы ] [ -U имя пользователя ] [ -P пароль ] [

    7 -S

    -S 90 a [uto] | d [emand] ] [ -e источник ] [ -W ] [ -t секунд ] [ -s ] [ -o options ]

    p0002ct
    отменить регистрацию [ -N servicename ]

    Описание

    pg_ctl - это утилита для инициализации Кластер базы данных PostgreSQL, запуск, остановка или перезапуск PostgreSQL сервер базы данных (postgres) или отображение статус работающего сервера.Хотя сервер можно запустить вручную, pg_ctl инкапсулирует такие задачи, как как перенаправление вывода журнала и правильное отключение от терминала и группа процессов. Он также предоставляет удобные возможности для контролируемое отключение.

    Режим init или initdb создает новый Кластер базы данных PostgreSQL, то есть набор баз данных, которые будут управляться одним экземпляр сервера. Этот режим вызывает initdb команда.См. Подробности в initdb.

    start mode запускает новый сервер. В сервер запускается в фоновом режиме, и к нему прилагается стандартный ввод на / dev / null (или nul в Windows). В Unix-подобных системах по умолчанию стандартный вывод сервера и стандартные ошибки отправляются в pg_ctl стандартный вывод (не стандартная ошибка). Стандартный вывод pg_ctl следует перенаправить на файл или передан другому процессу, например программе ротации журналов как ротационные журналы; в противном случае postgres запишет свой вывод на управляющий терминал (из background) и не покидает группу процессов оболочки.На Windows, по умолчанию стандартный вывод сервера и стандартная ошибка отправляются на терминал. Это поведение по умолчанию можно изменить используя -l , чтобы добавить вывод сервера в файл журнала. Рекомендуется использовать либо -l , либо перенаправление вывода.

    stop mode выключает сервер, работающий в указанный каталог данных. Три разных методы отключения можно выбрать с помощью -m вариант. «Умный» режим ждет всех активных клиентов отключить и завершить резервное копирование в Интернете.Если сервер находится в горячем резерве, восстановление и потоковая репликация будет прекращено после отключения всех клиентов. «Быстрый» режим (по умолчанию) не ждет, пока клиенты отключатся и прервет текущее оперативное резервное копирование. Все активные транзакции откат и клиенты принудительно отключены, затем сервер выключен. «Немедленный» режим будет отключен все серверные процессы немедленно, без полного выключения. Этот выбор приведет к аварийному восстановлению при следующем запуске сервера.

    перезапуск Режим эффективно выполняет остановку с последующим для начала. Это позволяет изменить postgres параметры командной строки или изменение параметров файла конфигурации, которые нельзя изменить без перезапуска сервера. Если относительные пути использовались в командной строке во время сервера start, перезапуск может завершиться неудачно, если pg_ctl выполняется в том же текущем каталог, как это было при запуске сервера.

    reload mode просто отправляет сервер postgres обрабатывает SIGHUP сигнал, заставляя его перечитывать свои файлы конфигурации ( postgresql.conf , pg_hba.conf и т. Д.). Это позволяет изменить параметры файла конфигурации, не требующие полного перезапуска сервера вступить в силу.

    Статус Режим проверяет, работает ли сервер в указанный каталог данных. Если это так, PID сервера и отображаются параметры командной строки, которые использовались для его вызова. Если сервер не запущен, pg_ctl возвращает статус выхода 3. Если доступный каталог данных не указано, pg_ctl возвращает статус выхода 4.

    Promotion mode управляет резервным сервером, который запускается в указанном каталоге данных для выхода из режима ожидания и начать операции чтения-записи.

    logrotate Режим выполняет ротацию файла журнала сервера. Подробнее об использовании этого режима с внешними инструментами ротации журналов см. Раздел 24.3.

    kill Режим отправляет сигнал указанному процессу. Это особенно важно в Microsoft Windows. который не имеет встроенной команды kill.Использовать --help , чтобы увидеть список поддерживаемых имен сигналов.

    регистр режим регистрирует PostgreSQL сервер как системная служба в Microsoft Windows. Опция -S позволяет выбрать тип запуска службы, либо «авто» (запускать службу автоматически при запуске системы) или «по запросу» (запуск обслуживания по запросу).

    unregister mode отменяет регистрацию системной службы в Microsoft Windows. Это отменяет эффекты регистр команда.

    Опции

    -c
    --core-files

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

    -D datadir
    --pgdata = datadir

    Задает расположение файлов конфигурации базы данных в файловой системе.Если эта опция опущена, переменная окружения PGDATA используется.

    -l имя_файла
    --log = имя_файла

    Добавить вывод журнала сервера в имя файла . Если файл не существует, он создан. Umask установлен на 077, поэтому доступ к файлу журнала по умолчанию запрещен для других пользователей.

    -m режим
    --mode = режим

    Задает режим выключения. режим может быть smart , fast или сразу , или первая буква одной из эти три. Если этот параметр не указан, быстро будет по умолчанию.

    -o опции
    --options = опции

    Задает параметры, передаваемые непосредственно в команда postgres . -o можно указывать несколько раз, со всеми заданными пропускаемые варианты.

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

    -o initdb-options
    --options = initdb-options

    Задает параметры, передаваемые непосредственно в initdb команда. -o можно указывать несколько раз, со всеми заданными пропускаемые варианты.

    initdb-options обычно следует окружать одиночным или двойные кавычки, чтобы гарантировать, что они передаются как группа.

    -p путь

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

    В режиме init эта опция аналогично указывает расположение initdb исполняемый файл.

    -s
    - тихий

    Печатать только ошибки, никаких информационных сообщений.

    -t секунд
    --timeout = секунд

    Задает максимальное количество секунд ожидания при ожидании завершение работы (см. опцию -w ).По умолчанию значение переменной среды PGCTLTIMEOUT или, если не установлено, до 60 секунд.

    -V
    - версия

    Распечатайте версию pg_ctl и выйдите.

    -w
    - ждать

    Дождитесь завершения операции. Это поддерживается для режимы старт , стоп , перезапуск , продвижение , и регистр и является значением по умолчанию для этих режимов.

    Во время ожидания pg_ctl повторно проверяет файл PID сервера, спящий на короткое время времени между проверками. Запуск считается завершенным, когда файл PID указывает, что сервер готов к принимать соединения. Выключение считается завершенным, когда сервер удаляет файл PID. pg_ctl возвращает код выхода на основе Успех запуска или завершения работы.

    Если операция не завершится в течение тайм-аута (см. option -t ), затем pg_ctl завершится с ненулевой статус выхода.Но учтите, что операция может продолжиться через фон и в итоге добьются успеха.

    -W
    - без ожидания

    Не ждите завершения операции. Это противоположность вариант -w .

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

    В предыдущих выпусках PostgreSQL это было по умолчанию, за исключением останавливает режим .

    -?
    - справка

    Показать справку о командной строке pg_ctl аргументы и выход.

    Если указан вариант, который действителен, но не относится к выбранному рабочий режим, pg_ctl игнорирует его.

    Опции для Windows

    -e источник

    Имя источника событий для использования pg_ctl для записи в журнал событий при работе в качестве службы Windows.В по умолчанию PostgreSQL . Обратите внимание, что это только контролирует сообщения, отправленные из самого pg_ctl; однажды запущен, сервер будет использовать указанный источник событий его параметром event_source. Если сервер выходить из строя очень рано при запуске, до того, как этот параметр был установлен, он также может регистрироваться с использованием события по умолчанию имя источника PostgreSQL .

    -N имя службы

    Имя регистрируемой системной службы.Это имя будет использоваться как имя службы и отображаемое имя. По умолчанию - PostgreSQL .

    -P пароль

    Пароль для пользователя, от имени которого запускается служба.

    -S стартовый

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

    -U имя пользователя

    Имя пользователя, от имени которого будет запущена служба. Для пользователей домена используйте формат ДОМЕН \ имя пользователя .

    Окружающая среда

    PGCTLTIMEOUT

    Ограничение по умолчанию на количество секунд ожидания при ожидании запуска или выключение для завершения.Если не установлен, по умолчанию 60 секунд.

    PGDATA

    Расположение каталога данных по умолчанию.

    Большинство режимов pg_ctl требуют знания каталога данных место расположения; поэтому требуется опция -D если не установлен PGDATA .

    pg_ctl , как и большинство других PostgreSQL коммунальные услуги, также использует переменные среды, поддерживаемые libpq (см. Раздел 33.14).

    Для дополнительных переменных, влияющих на сервер, см. postgres.

    Файлы

    postmaster.pid

    pg_ctl проверяет этот файл в данных каталог, чтобы определить, работает ли сервер в данный момент.

    postmaster.opts

    Если этот файл существует в каталоге данных, pg_ctl (в перезапустите режим ) передаст содержимое файла в качестве параметров в postgres, если не переопределено опцией -o .Содержимое этого файла также отображаются в режиме status mode.

    Примеры

    Запуск сервера

    Чтобы запустить сервер, ожидая, пока сервер прием подключений:

      $    pg_ctl start  
     

    Чтобы запустить сервер через порт 5433, и работает без fsync , используйте:

      $    pg_ctl -o "-F -p 5433" начало  
     

    Остановка сервера

    Чтобы остановить сервер, используйте:

      $    pg_ctl stop  
     

    Опция -m позволяет контролировать как сервер выключается:

      $    pg_ctl stop -m smart  
     

    Перезапуск сервера

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

      $    pg_ctl перезапуск  
     

    Но если указан -o , он заменяет все предыдущие параметры. Чтобы перезапустить через порт 5433, отключив fsync при перезапуске:

      $    pg_ctl -o "-F -p 5433" перезапустить  
     

    Отображение статуса сервера

    Вот пример вывода статуса из pg_ctl:

      $    статус pg_ctl  
     
    pg_ctl: сервер работает (PID: 13718)
    / usr / local / pgsql / bin / postgres "-D" "/ usr / local / pgsql / data" "-p" "5433" "-B" "128"
      

    Вторая строка - это команда, которая будет вызываться в режиме перезапуска.

    Запуск PostgreSQL Server в Mac OS X через Homebrew

    Установите PostgreSQL через Homebrew

    Вероятно, большинство пользователей OS X знают о Homebrew , но Homebrew - это менеджер пакетов для OS X, который позволяет легко устанавливать и запускать огромную библиотеку приложений и утилит.

    Мы не будем проходить через весь (хотя и короткий) процесс установки Homebrew, но если вы хотите установить Homebrew и использовать его для управления PostgreSQL, ознакомьтесь с командой установки в официальной документации. Если вы не уверены, установлен ли Homebrew, попробуйте выполнить команду which brew с терминала для проверки.

    После установки Homebrew вы можете установить PostgreSQL, введя в терминале следующие команды:

      $ brew обновить
    $ пивоваренный доктор
    $ brew установить postgres
      

    Первые две команды используются для обновления Homebrew и сообщения о любых потенциальных проблемах (при необходимости). Тогда, конечно же, brew install postgres - это однострочная команда для установки PostgreSQL.

    Вы должны увидеть много полезной информации в выводе во время установки, большую часть которой следует скопировать для использования в следующих разделах.

    Использование LaunchAgent и plist для запуска PostgreSQL при запуске

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

    Во-первых, вам нужно создать каталог, в котором будет размещаться ваш агент LaunchAgents (если каталог еще не существует). LaunchAgents в OS X - это простые сценарии, используемые launchd , которые заставляют систему запускать программы или код во время запуска.

    Создайте каталог для пользователя , специфичный для LaunchAgents , с помощью этой команды, если необходимо:

      $ mkdir -p ~ / Библиотека / LaunchAgents
      

    Теперь вам нужно создать символическую ссылку из сценария, которая фактически позволяет Postgres запускаться в каталог LaunchAgents . Символьная ссылка похожа на создание новой копии файла для использования в другом каталоге, но поскольку ссылка является «символической», ссылка является просто адресом пересылки: любой запрос, сделанный в это место символической ссылки, фактически «пересылается» или перенаправлен туда, где на самом деле находится настоящий файл .

    Ссылка на файл plist (список свойств), который был сгенерирован Homebrew, и поместите эту новую символическую ссылку в LaunchAgents с помощью этой команды:

      $ ln -sfv /usr/local/opt/postgresql/*.plist ~ / Library / LaunchAgents
      

    Примечание. Еще раз проверьте правильность команды: она должна быть частью выходных данных установки, упомянутых выше, когда Homebrew изначально установил Postgres.

    Наконец, мы загружаем новый файл LaunchAgent с символической ссылкой, используя команду launchctl load , которая, в частности, сообщает компьютеру, что нужно запустить этот сценарий и запустить Postgres при запуске компьютера.Опять же, точная команда, которую нужно ввести для вашей собственной установки, будет выводиться во время установки Homebrew's Postgres, но она должна выглядеть примерно так:

      $ launchctl load ~ / Library / LaunchAgents / homebrew.mxcl.postgresql.plist
      

    Запуск PostgreSQL вручную

    Чтобы вручную запустить Postgres без перезагрузки, вы снова должны иметь возможность использовать команду, выведенную во время установки, например:

      $ postgres -D / usr / местный / var / postgres
      

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

    Запуск / остановка PostgreSQL без Homebrew

    В случае, если у вас нет (или вы не хотите использовать) Homebrew для Postgres, но у вас уже установлен Postgres, вы также можете вручную запустить его с помощью pg_ctl , который является утилитой запуска, предоставляемой самим Postgres. .

    Это запустит Postgres (при условии, что каталоги по умолчанию):

      $ pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log start
      

    И это остановит Postgres:

      pg_ctl -D / usr / local / var / postgres stop -s -m fast
      
    Устранение неполадок при запуске

    : вы запускали

    initdb ?

    В некоторых случаях, если у вас возникли проблемы с запуском Postgres, убедитесь, что вы выполнили команду initdb один раз, что заставит Postgres инициализировать кластер базы данных для новой установки и позволит вам подключиться к пользователю postgres по умолчанию.

    Добавить комментарий

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