pg_ctl: не удалось запустить сервер

Вопрос или проблема

Я пытаюсь запустить сервер PostgreSQL, установленный на удаленном сервере Redhat (RHEL 6.7 x86_64) через putty.

Команда, которую я использовал для запуска сервера, это /etc/init.d/postgresql-9.5 start
Но она показывает следующую ошибку:

ошибка postgresql

Это содержимое файла /pg_log/startup.log:

/pg_log/startup.log

Вот ссылка на содержимое файла postgresql.conf:
https://drive.google.com/file/d/0B9Yw9pzgnSgTTTBKaWxwWXUtNTg/view?usp=sharing

Я проверил файл postgresql.conf, но не смог найти ошибку.
Может кто-то помочь мне решить эту проблему?

Редактирование:
вот вывод команды “locale”, как попросил @Michael Hampton

locale_output

Пожалуйста, обратитесь к этой статье и попробуйте предложенные исправления
http://blog.earth-works.com/2014/02/10/fixing-lc-locale-issues-in-centos-and-rhel/

У этого человека такой же вывод команды locale, как у вас.

Ответ или решение

Запуск PostgreSQL на удалённом сервере RHEL 6.7 x86_64 через putty может вызвать различные проблемы, особенно когда вы видите ошибку "pg_ctl: could not start server". В данном случае, ошибка может быть связана с несколькими аспектами: настройки конфигурации, проблемы с региональными настройками, права доступа и журнал ошибок. Давайте разберемся с этими потенциальными источниками проблем и найдем пути их решения.

Теория: Возможные причины ошибки

  1. Региональные настройки (Locale): Если региональные настройки системы не соответствуют тем, которые поддерживаются PostgreSQL, это может привести к проблемам при запуске. В системах на базе Linux часто сталкиваются с проблемами, связанными с переменной окружения locale.

  2. Неправильная конфигурация: Файл конфигурации postgresql.conf может содержать параметры, несовместимые с текущей версией PostgreSQL или системой. Ошибки в параметрах, таких как listen_addresses или port, могут препятствовать запуску сервера.

  3. Права доступа: PostgreSQL требует, чтобы файлы данных и логов были доступными и записываемыми от лица пользователя, под которым он запускается (чаще всего postgres).

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

Пример: Анализ ситуации

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

На основе предоставленной информации, ошибки могут быть связаны с неправильными настройками локали. Например, отсутствие настроек LANG или LC_* переменных может вызывать проблемы с запуском серверного процесса PostgreSQL.

Применение: Как исправить проблему

Шаг 1: Проверка и исправление локалей

Следуйте этим шагам для Diagnose and стандартизации настроек локали:

  1. Проверка текущих настроек:

    locale

    Проверьте, установлены ли LANG, LC_ALL, LC_CTYPE и другие переменные окружения. Воспользуйтесь утилитой localectl или редактируйте файл /etc/locale.conf для изменения дефолтных настроек.

  2. Установка или изменение локалей:
    Изменения можно сделать с помощью команд:

    localectl set-locale LANG=en_US.UTF-8
  3. Генерация недостающих локалей:
    Запустите следующую команду, если необходимые локалей отсутствуют:

    locale-gen en_US.UTF-8

Шаг 2: Проверка конфигурации PostgreSQL

  1. Редактирование postgresql.conf: Перепроверьте значения параметров, например:
    • listen_addresses: Убедитесь, что параметр правильно указывает, какие адреса должны быть прослушаны (например, 'localhost' или '*').
    • port: Проверьте, что порт не занят другой программой.

Шаг 3: Проверка прав доступа

  1. Проверка прав на файлы данных и логов: Все файлы, связанные с PostgreSQL, должны быть доступны пользователю, запускающему сервер.
    sudo chown -R postgres:postgres /var/lib/pgsql/data

Шаг 4: Анализ логов

Изучите логи, упомянутые в startup.log, на наличие специфических ошибок и других сообщений. Ищите строки, содержащие FATAL или ERROR, и исправляйте проблемы на их основе.

Заключение

Ошибка "pg_ctl: could not start server" может вызываться множеством причин, однако методичный подход к её решению, проверка настройка локали, конфигурации и прав доступа, а также изучение детализированных логов помогут выявить и устранить проблему. Уделяя внимание деталям и следуя рекомендациям, можно успешно запустить сервер PostgreSQL и избежать подобных ошибок в будущем.

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

Капча загружается...