
Я запускаю экземпляр postgres 9.3 на сервере Ubuntu 12.04:
~# service postgresql start
* The PostgreSQL server failed to start. Please check the log output.
[fail]
запуск не удается, но журнал не сохраняется, этот файл пуст:
tail /var/log/postgresql/postgresql-9.3-main.log
и в этом каталоге нет других файлов: /var/log/postgresql/
Каков наилучший способ устранения этой неполадки?
решение1
Попробуйте запустить его вручную с включенной отладкой. Это заставит его работать на переднем плане и выводить любые сообщения об ошибках в стандартный поток ошибок, а также увеличит многословность.
Я считаю, что это будет правильная командная строка для PostgreSQL 9.3 на Ubuntu, но, возможно, ее придется немного доработать (примечание: строка разделена для удобства чтения; при желании ее можно объединить в одну строку (без обратной косой черты):
/usr/lib/postgresql/9.3/bin/postgres -d 3 -D /var/lib/postgresql/9.3/main \
-c config_file=/etc/postgresql/9.3/main/postgresql.conf
В начале указывается местоположение postgres
двоичного файла, затем мы включаем отладку и устанавливаем ее на уровень 3 (вы можете настроить его вверх или вниз, чтобы увеличить или уменьшить детализацию). Затем мы указываем каталог данных и файл конфигурации, с которого нужно начать. Я думаю, это должны быть значения по умолчанию для Ubuntu Server 12.04.
Надеюсь, это даст вам достаточно информации, чтобы определить, в чем проблема.
решение2
На основании ответа @christopher:
С postgres 12 на Ubuntu я запустил:
# with my custom data dir:
/usr/lib/postgresql/12/bin/postgres -d 3 -D /media/ssd1/pg_data -c config_file=/etc/postgresql/12/main/postgresql.conf
# with default config:
/usr/lib/postgresql/12/bin/postgres -d 3 -D /var/lib/postgresql/12/main -c config_file=/etc/postgresql/12/main/postgresql.conf
В моем случае проблема была в следующем:
2020-06-02 15:27:45.468 GMT [2522] LOG: skipping missing configuration file "/media/ssd1/pg_data/postgresql.auto.conf"
2020-06-02 17:27:45.469 CEST [2522] FATAL: data directory "/media/ssd1/pg_data" has wrong ownership
2020-06-02 17:27:45.469 CEST [2522] HINT: The server must be started by the user that owns the data directory.
2020-06-02 17:27:45.469 CEST [2522] DEBUG: shmem_exit(1): 0 before_shmem_exit callbacks to make
2020-06-02 17:27:45.469 CEST [2522] DEBUG: shmem_exit(1): 0 on_shmem_exit callbacks to make
2020-06-02 17:27:45.469 CEST [2522] DEBUG: proc_exit(1): 0 callbacks to make
2020-06-02 17:27:45.469 CEST [2522] DEBUG: exit(1)
У меня не было полезной информации sudo cat /var/log/postgresql/postgresql-12-main.log
и sudo systemctl start postgresql
не было вывода.