При инициализации БД выдает след. ошибку
postgres@1csrv:/usr/LOCAL/pgsql/bin$ ./initdb -D /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 C. The DEFAULT DATABASE encoding has accordingly been SET TO SQL_ASCII. The DEFAULT text search configuration will be SET TO "english". fixing permissions ON existing directory /DATA ... ok creating subdirectories ... ok selecting DEFAULT max_connections ... 100 selecting DEFAULT shared_buffers ... 32MB creating configuration files ... ok creating template1 DATABASE IN /DATA/base/1 ... ok initializing pg_authid ... FATAL: syntax error at OR near "REVOKE" at character 1 STATEMENT: REVOKE ALL ON pg_authid FROM public; child process exited WITH exit code 1 initdb: removing contents of DATA directory "/DATA" postgres@1csrv:/usr/LOCAL/pgsql/bin$
ОС Slackware 13.37, Postgresql 9.0.3.
Исходники и патчи брал с сайта 1С. Скомпилировалась и установилаь без ошибок.
Подскажите где посмотреть?
Смотреть как всегда мануал
http://postgresql.ru.net/manual/runtime.html
Например, вам бы точно не помешало указать кодировку отличную от "C".
И кстати, настоятельно советую взять 9.0.7, а не 9.0.3 если вам нужна ветка 9.0.x
С указанием локали и
С указанием локали и кодировки ничего не изменилось...
На сайте 1С нет 9.0.7, есть 9.0.3... Это все из-за пачтей, т.к. без них все установилось на ура.
Я не ошибаюсь: вы просите
Я не ошибаюсь: вы просите помощи в вопросе работы продукта, который является модифицированной версией PostgreSQL от 1C, при этом говорите, что без патчей 1C всё работает? Тогда почему не пишите в поддержку 1C?
Я бы ещё попробовал, поставить обычный PostgreSQL, сделать по нему initdb, а затем, сохранив каталог с БД, поставить версию с 1C и уже так попробовать работать. Совсем не уверен, что сработает, но больше ничего подсказать вам не могу - очевидно, что они что-то напортачили в скрипте инициализации БД, но что конкретно - мне неясно.
Ещё одна идея:
попробуйте выполнить команду:
# strings /usr/bin/initdb
у меня результат такой:
REVOKE ALL on pg_authid FROM public;
REVOKE CREATE,TEMPORARY ON DATABASE template1 FROM public;
REVOKE CREATE,TEMPORARY ON DATABASE template0 FROM public;
Возможно вам станет понятно, что не так, когда посмотрите, что выдаёт вам. Тогда всё просто - найдите в исходниках это место и поправьте его, затем пересоберите PostgreSQL
С инициализацией
С инициализацией разобрался... не хватало ICU. Скопилировал, установил и инициализация кластера прошла успешно.
Тепреь возник другой вопрос. При запуске postgresql возникает ошибка
вот системное время
Почему он меня просит установить GMT-5, когда у меня +6?
В файле postgresql.conf изменял параметр timezone - ошибка повторяется...
А он и не просит. Он говорит,
А он и не просит. Он говорит, что не смог определить часовой пояс системы и поэтому он будет установлен в "Etc/GMT-5". Если изменяли параметр, а ошибка повторяется, значит некорректное значение подставляете или сам postgresql.conf находится не в том месте - PostgreSQL его не видит.
Каким образом Postgresql
Каким образом Postgresql определяет часовой пояс системы? Через перемнные окружения или каким то своим методом? Где это можно помотреть и изменить?
postgresql.conf находится в том же каталоге который был указан при инициализации. Попробовал различные варианты:
В последних двух случаях вышла ошибка:
В остальных та же ошибка:
Так что программа этот файл видит.
Пробовал устанавливать переменную окружения TZ, но результат тот же...
А как вы устанавливали эту
А как вы устанавливали эту переменную?
У меня в конфиге написано так:
однако могу сказать совершенно точно, что TZ у меня тоже не установлена. Тогда могу сделать вывод, что часовой пояс берётся из системных установок. Что у вас показывает команда data?
А пробовали устанавливать в конфиге:
timezone = 'Etc/GMT+6'
?
А как вы устанавливали эту
А как вы устанавливали эту переменную?
просто снял комментарий и указал значение:
timezone = Asia/Yekaterinburg
так тоже пробовал - результат аналогичный
А пробовали устанавливать в конфиге:
timezone = 'Etc/GMT+6'
Вопрос снят.
проблему решил использованием скрипта timeconfig. Указал "Hardware clock is set to local time"
Но по идее - это баг
Но по идее - это баг вообще-то! Если в документации написано, что через timezone можно установить, а не устанавливается - это баг. Проверить бы это дело и им запостить.
Тогда баг еще и вот
Тогда баг еще и вот это:
Скомпилировал с опцией --with-system-tzdata=/usr/share/zoneinfo, а при запуске сервера пишет что каталог /usr/local/pgsql/share/timezone отсутствует???
это похоже ошибка сборки - не
это похоже ошибка сборки - не там ищет
сделайте симлинку
Да. Точно. Я уже разобрался.
Да. Точно. Я уже разобрался.