2015-08-17 3 views
3

Я работаю над созданием кластера баз данных (единой базы данных) в PostgreSQL 9.x, работающем в системе Linux (CentOS - RedHat - Fedora). Я установил правильные пакеты PostgreSQL (сервер & клиент), однако я не могу создать базу данных и получить некоторый тип ошибки зависимостей инициализации : Ошибка шины/код выхода 135. Я изменил мой пользователя «Postgres» с «Су Postgres», а затем пытался инициализировать базу данных с «initdb» (это может быть проблема)PostgreSQL «initdb» (инициализация базы данных) в Linux

Installed: postgresql-libs-9.2.13-1.el7_1.x86_64 
Installed: postgresql-9.2.13-1.el7_1.x86_64 
Installed: postgresql-server-9.2.13-1.el7_1.x86_64 

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

http://www.postgresql.org/docs/9.2/interactive/creating-cluster.html

Ошибка:

$ initdb -D /usr/local/pgsql/data 
The files belonging to this database system will be owned by user "postgres". 
This user must also own the server process. 

The database cluster will be initialized with locale "en_US.utf8". 
The default database encoding has accordingly been set to "UTF8". 
The default text search configuration will be set to "english". 

creating directory /usr/local/pgsql/data ... ok 
creating subdirectories ... ok 
selecting default max_connections ... 100 
selecting default shared_buffers ... 32MB 
creating configuration files ... ok 
creating template1 database in /usr/local/pgsql/data/base/1 ... ok 
initializing pg_authid ... ok 
initializing dependencies ... sh: line 1: 12616 Bus error    (core dumped) "/usr/bin/postgres" --single -F -O -c search_path=pg_catalog -c exit_on_error=true template1 > /dev/null 
child process exited with exit code 135 

Любые идеи?

+0

Это плохой жесткий диск или проблема, связанная с postgresql? – htmlfarmer

+0

Как именно вы установили пакеты? Какая командная строка (-ы)? Откуда взялись пакеты? Какая ОС вы на самом деле? Пожалуйста, отредактируйте вопрос, чтобы показать вывод 'lsb_release -a' и' rpm -qi postgresql-92-server' (замените '92' вашей версией PostgreSQL, если не уверены в использовании' psql -version'). Затем прокомментируйте здесь, когда закончите. –

+0

CentOS7 с PostgreSQL 9.2 с использованием по умолчанию RedHat EL7 yum install. – htmlfarmer

ответ

2

После установки PostgreSQL (серверных и клиентских инструментов) необходимо выполнить следующие команды как ROOT («su»). Ключевым шагом является запуск «service postgresql initdb» и его инициализация базы данных PostgreSQL.

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

# service postgresql initdb 
# systemctl enable postgresql 
# systemctl start postgresql 

После выполнения выше убедитесь, что Postgres в/вар/Библиотека/PgSQL и процесс работает с «п.с. -ef | Grep Postgres» (его на порт 5432)

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

+0

Возможно, это возможно предотвратить ошибки, подобные этому, имея скрипт управления, который проверяет и удаляет каталоги данных «данные», которые пусты или нулевые. – htmlfarmer

0

Если вы установили из пакетов, вы должны использовать предоставленные пакетом методы для создания БД. Для PDGD РПМ (от http://yum.postgresql.org/), который документированных в README.rpm-dist:

/usr/pgsql-9.4/bin/postgresql94-setup initdb 

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

Update:

Кажется, очень вероятно, будет библиотека C Несовместимость. Возможно, проблема между RHEL и CentOS? Или версия связана? Это ошибка в динамическом компоновщике. dl-lookup.c будет glibc/elf/dl-lookup.c, и он, кажется, сбой во время поиска символа. Таким образом, здесь есть что-то действительно неудобное, например, испорченная хэш-таблица символов в двоичном формате или несовместимость между используемым бинарным и динамическим компоновщиками. Или ошибка памяти, ошибка диска, проблема с кешем CPU или другая аппаратная ошибка.

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

+0

К сожалению, я не смог запустить «postgresql-setup initdb», как это предлагает doc. То, что я сделал, это очистить все, а затем запустить «service postgresql initdb». Возможно, лучше всего использовать команду, которую вы рекомендуете в первую очередь. – htmlfarmer

+0

Похоже, что установочные библиотеки PostgreSQL бинарных RPM/YUM верны для CentOS/RedHat, теперь они работают с 9.2. Инструкции показывают, что можно инициализировать базу данных в качестве пользователя postgres, и, возможно, есть какая-то ошибка, вызывающая базовый дамп в этих условиях. – htmlfarmer

 Смежные вопросы

  • Нет связанных вопросов^_^