Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
Кроик Семён
Member

Откуда: СПб --> Dortmund
Сообщений: 6645
Здравствуйте!

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

Имеем Windows 2003 Server Standard Edition

Итак, скачал PostgreSQL 8.4.1.1, запустил инсталлятор, отвечаю на все вопросы. Идет процесс инсталляции, который завершается сообщением "Installation may not complete correctly. The database cluster initialization failed." Просто замечательно! Смотрю, и службу не создал.

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

1) создал пользователя postgres до инсталляции
2) дал ему администраторские права
3) зашел в Windows от имени уже этого пользователя postgres
4) провожу процесс инсталляции
5) установка проходит почти до конца, в списке служб появляется служба PostgreSQL Server 8.4
6) ... которая не стартует по вполне понятным причинам: postgres не должен иметь админские права :)
7) OK, заходим в Windows уже от лица пользователя Administrator, забираем назад админские права у postgres'a
8) стартуем службу PostgreSQL Server 8.4, она стартует

Все.
Можно соединяться с сервером и начинать работу.

Единственно, что еще не проинсталлировалось - это база template1. Думаю, ее можно как-нибудь создать. Если нужно.


Как альтернативное решение можно было бы скачать 3rd party distribution Postgres Plus (я кстати его тоже попробовал на чистой винде, ставит все без сучка и задоринки, правда несколько изменяет имя службы и некоторые другие вещи), но хотелось именно официальный дистрибутив
21 сен 09, 12:48    [7686565]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
Кроик Семён
Member

Откуда: СПб --> Dortmund
Сообщений: 6645
к Модератору форума:

это только у меня в силу непонятных мне причин такие сложности были?
Если нет и проблема частая, но может как-нибудь в топик вопрос-ответ добавить?
21 сен 09, 14:16    [7687155]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
ОКТОГЕН
Member

Откуда:
Сообщений: 2494
Кроик Семён, у меня тоже похожее г-но было.
Как лечил - не помню, т.к. был в невменяемом состоянии.
21 сен 09, 14:35    [7687301]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
Кроик Семён
Member

Откуда: СПб --> Dortmund
Сообщений: 6645
ОКТОГЕН,

я тоже уже начинал входить в невменяемое состояние после кучи часов напряженной работы с чтением логов и рытьем в интернете.
21 сен 09, 14:44    [7687405]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
assa
Member [заблокирован]

Откуда: мы сами не местные
Сообщений: 3444
гм. пока не натыкался. буквально на дня ставил 8.4., но в другой порт, чтобы иметь и ранее установленный рабочий 8.3 на своей же машине (рабочие сервера есть и те, и те, т.ч. на своей машинке хочется иметь копии и того и того, чтобы и тестовые, и дампы, и т.п.). Думал огребу проблем по самое небалуйсо. Но ,как ни странно, - никаких проблем. Поднялся из ван-клик-инстоллера, пользователь postgres ,правда, уже давно заведен.


ЗЫ Работают оба сервера на одной машинке. Одновременно, если попросить. Может и при плотной работе были бы проблемы, но для разборки/сборки структур, перегонки дампов, да по мелочи с тестовыми данными - вполне рабочее решение.
21 сен 09, 15:56    [7687891]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
Warstone
Member

Откуда:
Сообщений: 4896
Блог
Вообще-то PG страдает тем, что втихую меняют инсталлятор у себя на сайте. Попробуйте свежий и если не сработал - запостите на багтрек Пгшный.
21 сен 09, 17:25    [7688467]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
Perederiy
Member

Откуда:
Сообщений: 352
Чего только не придумают люди чтобы не работать в Linux.
21 сен 09, 18:35    [7688843]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
_cx_
Member

Откуда:
Сообщений: 32
Да, проблем с инсталлятором под Windows много у PostgreSQL.

У меня вообще postgresql-8.4.1-1-windows.exe отказался устанавливаться.
Т.е. в диспетчере задач повисел пару сек. и всё... нет его.
В событиях ОС тоже ничего. До него 8.3.7 ставилась нормально.
Скачал архив бинарников с
http://www.enterprisedb.com/products/pgbindownload.do
Распаковал в "C:\pgsql". Создаю вручную пользователя операционной системы - "postgres" с таким же паролем в группе "Пользователи" через
"Управление компьютером->Локальные пользователи->Пользователи->Новый пользователь"
Присваиваю все права на директорию сервера БД пользователю "postgres"
Дальше создаю кластер БД, дабы сервер мог с ним работать...

C:\pgsql\bin>initdb -U "postgres" -W -D"C:\DB\PostgreSQL\"
Файлы, сопутствующие этой системе баз данных, будут
принадлежать пользователю "cx". Этот пользователь
также должен быть владельцем процесса сервера.
Кластер баз данных будет инициализирован с локалью Russian_Russia.1251.
Кодировка базы по умолчанию установлена в WIN1251.
Конфигурация полнотекстового поиска по умолчанию установлена в "russian".

создание директории C:/DB/PostgreSQL ... ок
создание поддиректорий ... ок
выбирается значение по умолчанию для max_connections ... 100
selecting default shared_buffers ... 32MB
создание конфигурационных файлов ... ок
создание базы template1 в C:/DB/PostgreSQL/base/1 ... ок
инициализация pg_authid ... ок
┬тхфшЄх эют√щ ярЁюы№ рфьшэшёЄЁрЄюЁр:  Ввел_ПАРОЛЬ_пользователя_postgres'а
┬тхфшЄх хую ёэютр: Ввел_ПАРОЛЬ_пользователя_postgres'а
установка пароля ... ок
инициализация зависимостей ... ок
создание системных представлений ... ок
загрузка системных описаний объектов ... ок
создание конверсий ... ок
создание словарей ... ок
установка привилегий для встроенных объектов ... ок
создание информационной схемы ... ок
сборка мусора в базе template1 ... ок
копирование template1 в template0 ... ок
копирование template1 в postgres ... ок

ВНИМАНИЕ: используется аутентификация "trust" для локальных подключений.
Вы можете её поменять, отредактировав pg_hba.conf или используя опцию -A,
при следующем выполнении initdb.

Успех. Вы теперь можете запустить сервер баз данных:

    "postgres" -D "C:/DB/PostgreSQL"
или
    "pg_ctl" -D "C:/DB/PostgreSQL" -l logfile start


Регистрирую PostgresSQL как сервис в менеджере служб Windows:

C:\pgsql\bin>pg_ctl register -N "PostgreSQL 8.4" -U postgres -P postgres -D C:/DB/PostgreSQL

Теперь служба зарегистрирована, но запуститься не сможет, т.к. нет прав на директорию кластера у пользователя "postgres". Кластер я создал в "C:/DB/PostgreSQL", вот на него права и выдал для пользователя "postgres". Теперь запускаю сервер из менеджера служб (Администрирование->Службы).

Проверяю существование баз данных

C:\pgsql\bin>psql -l -U "postgres"
                                          List of databases
   Name     |  Owner   | Encoding |      Collation      |        Ctype        | Access privileges
-----------+----------+----------+---------------------+---------------------+--
 postgres   | postgres | WIN1251  | Russian_Russia.1251 | Russian_Russia.1251 |
 template0 | postgres | WIN1251  | Russian_Russia.1251 | Russian_Russia.1251 | =
 template1 | postgres | WIN1251  | Russian_Russia.1251 | Russian_Russia.1251 | =
ostgres=CTc/postgres
(3 rows)

Теперь можно подключаться...

C:\pgsql\bin>psql -d "postgres" -U "postgres" -W "postgres"
psql: warning: extra command-line argument "postgres" ignored
Password for user postgres:
psql (8.4.1)
WARNING: Console code page (866) differs from Windows code page (1251)
         8-bit characters might not work correctly. See psql reference
         page "Notes for Windows users" for details.
Type "help" for help.

postgres-# \q

C:\pgsql\bin>

И ещё...
В версии 8.4.0.1 не было никаких проверок на Админские права, а в 8.4.1.1 сделали - молодца!
Зачем?!! Непоня-я-я-тно. Ведь сколько первооткрывателей PostgreSQL-я теперь стонать будут:
- Я только хотел его посмотреть, а он мне ...
Нормальный админ, который доку читал, сразу права обрежет по самый PGDIR.
Плохо, что инсталлятор нормальный сделать не могут. Действительно одни мученья по сравнению с тем, как это проходит в Linux
31 окт 09, 16:58    [7866664]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
Александр А.Н.
Member

Откуда: Из утробы
Сообщений: 89
_cx_,
О, о, а дайте я тоже напишу свой рецепт установки 8.4....Создаём папку data с том месте где хотим чтоб располагалась БД, устанавливаем права записи в неё и чтения для пользователя Все, и при установке указываем её...вроде бы всё, проблем быть не должно.
31 окт 09, 20:29    [7866910]     Ответить | Цитировать Сообщить модератору
 на сайте www.postgres.ru.net  [new]
prustr
Member

Откуда: C-Петербург
Сообщений: 954
есть рецепты от многих проблем при инсталляции.
Все траблы идут от отсутствия прав на доступ к новым каталогам.
У меня например на каталоге data стоял флаг только чтение. Убрал флаг, повторил инсталляцию поверх незавершенной -- все в порядке стало. Ну а заходить под postgres поле инталляции надо обязательно для создания пользователя с правами суперпользователя, отличного от постгресс, ну или всегда работать полд учеткой постгресс
1 ноя 09, 12:46    [7867561]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
_cx_
Member

Откуда:
Сообщений: 32
Александр А.Н.,
Проблема была в:
автор
Да, проблем с инсталлятором под Windows много у PostgreSQL.

У меня вообще postgresql-8.4.1-1-windows.exe отказался устанавливаться.
Т.е. в диспетчере задач повисел пару сек. и всё... нет его.

И Вашим способом рещить её бы не удалось.

Порой даже тех действий, которые Вы указали нет необходимости совершать. Достаточно запустить install.exe и будет счастье.
Но "раз в год и палка сртресяет"... Вот как раз по этой проблеме и тема: "Делюсь опытом: побороть инсталлятор PostgreSQL в Windows". А так, считайте, что Вам повезло. Я только привел здесь метод ручной установки, который может заставить работать PostgreSQL так, как будто бы он сам установился.


prustr,
Все траблы идет от степени кривизны рук их создававших...
автор
Ну а заходить под postgres поле инталляции надо обязательно для создания пользователя с правами суперпользователя, отличного от постгресс...

Если Вы имеете ввиду пользователя ОС, то в этом нет никакой необходимости, т.к. почти все Postgres-овские утилиты имеют параметр -U, который определяет пользователя, от которого будет осуществленно то или иное действие.
Обратите внимание на:
автор
initdb -U "postgres" -W -D"C:\DB\PostgreSQL\"

Как результат владельцем всех БД в созданном кластере стал пользователь "postgres"
автор
C:\pgsql\bin>psql -l -U "postgres"
List of databases
Name | Owner | Encoding | Collation | Ctype | Access privileges
-----------+----------+----------+---------------------+---------------------+--
postgres | postgres | WIN1251 | Russian_Russia.1251 | Russian_Russia.1251 |
template0 | postgres | WIN1251 | Russian_Russia.1251 | Russian_Russia.1251 | =
template1 | postgres | WIN1251 | Russian_Russia.1251 | Russian_Russia.1251 | =
ostgres=CTc/postgres
(3 rows)


Единственное что не было сделанно, так это выдача прав на эту директорию пользователю ОС "postgres" (приходится делать вручную). НО порой когда нормальная версия инсталлера ЭТИ права всетаки выделяются. Но опять-же, это воля случая...

автор
ну или всегда работать полд учеткой постгресс

Тем самым Вы обрезаете свои права в ОС до группы "Пользователи".
ИМХО: Не считаю это очень удобным способом решения.
2 ноя 09, 08:56    [7869018]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
prustr
Member

Откуда: C-Петербург
Сообщений: 954
Все траблы идет от степени кривизны рук их создававших...

Судя по всему, вы, как и я, перешли на Постгрес с коммерческого продукта, например с MSSQL.
Мой вам совет, либо возвращайтесь обратно и купите лицензию, либо купите Oracle для малого бизнеса, это по деньгам не дорого, либо пользуйтесь тем что есть и привыкайте к отсутсвию хорошей документации и неразговорчивости местных форумчан. Их неразговорчивость будет вам скоро понятна. поиск ответа на какой нибудь пустяковый вопрос занимает подчас столько времени, что поделиться опытом уже сил нет.
2 ноя 09, 10:33    [7869329]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
Ёш
Member

Откуда:
Сообщений: 2892
prustr
привыкайте к отсутсвию хорошей документации
прекрасная подробная документация с ссылками на теорию реляционных баз, международный стандарт языка SQL и примерами — это один из главных плюсов PostgreSQL :)
2 ноя 09, 10:50    [7869422]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
_cx_
Member

Откуда:
Сообщений: 32
prustr
Судя по всему, вы, как и я, перешли на Постгрес с коммерческого продукта, например с MSSQL

Нет. Ошибаетесь. Я долгое время использовал FireBird (и InterBase до него), пока на пришлось перейти на более тяжёлое ПО. С Oracle и MSSQL я тоже знаком.
Не знаю с чего Вы решили, что Postgres плохо документированн. Порой как начнёш читать по нему доку, так считай день пропал - столько её. Согласен, по поводу систематизации, мне тож не всё в ней нравиться, но тем немение это был всё же плюс у Postgres по сравнению с другими OS ПО.
prustr
купите Oracle для малого бизнеса, это по деньгам не дорого

По сравнению с Postgres и кол-вом требуемых подключений, Oracle, да впрочем и MSSQL, выльется в круглую сумму. Да и обновления на новые версии и т.д. Так что перспектива не очень безоблачная в фин. отношении.
автор
Все траблы идут от степени кривизны рук их создававших...

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

Ветка по Postgres даже очень живая, тому свидетельство кол-во тем и ответов, обсуждаемых на ней.
А по поводу капризов установки, это всё равно что самому собрать и разобрать велосипед, потом кататься приятнее будет.
2 ноя 09, 11:34    [7869705]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
prustr
Member

Откуда: C-Петербург
Сообщений: 954
А давайте по гамбургскому счету, зачем ставить postgres на винды?
Я ставил только потому, что мне скучно было ждать неделю, пока новый сервак не соберут. Поэтому и накатил от скуки, доки почитал, ткнулся пару раз в таблицы, отладил конретор данных. Потом привезли сервак, все данные туда слили и с ним и работаем.
64-х разрядный, нативный для centOs, проинсталлированный одной командой, на зеркальном рейде...
зачем винды?
2 ноя 09, 11:44    [7869776]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
_cx_
Member

Откуда:
Сообщений: 32
Над этим вопросом бьются многие великие умы - "Почему в школах, универах, а может и в дет садах преподают именно MS и Pascal?" Хотя с последним можно с натяжкой согласиться...

А принцип установки Postgres что в Linux, что в Win одинаков. Только в Linux всю работу сценарий пакета делает, а в Win инсталлятор. Особо отличай нет.
2 ноя 09, 13:10    [7870612]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
web_fox
Member

Откуда: Киев
Сообщений: 444
Кроик Семён,

аналогичная проблема. Дома инсталируется нормально. На работе - как у вас.
Решение: принёс на работу недостающую папку издому и скопировал в папку постгреса.
5 ноя 09, 11:16    [7884330]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
web_fox
Member

Откуда: Киев
Сообщений: 444
коллеги, давайте не переводить тему в разряд Linux VS Win. Тема не про это.

Если вам интересно, то лично я не разбираюсь в Linux и для БД-разработки мне это не нужно. За системный уровень отвечают системные администраторы, а на какую ОС ставить СУБД - это их компетенция. Рабочая станция работают под Win. Если мне интересно посмотреть новую версию PG, то я качаю и ставлю на своей машине. Вот и всё. Предлагаю не продолжать. Спасибо.
5 ноя 09, 11:42    [7884558]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
covan
Member

Откуда:
Сообщений: 61
У меня вообще все поставилоь сразу без всяких проблем.
Единственный косяк был в том, что когда в самом начале он предлагает ввести пароль для службы и аккаунта ОС, если вводишь postgres, то начинает ругаться, любой другой пропускает нормально.
11 ноя 09, 10:12    [7911905]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
Кроик Семён
Member

Откуда: СПб --> Dortmund
Сообщений: 6645
covan
У меня вообще все поставилоь сразу без всяких проблем.


Надеюсь, что это следствие поправленного инсталлятора.
Все-таки пара недель прошла.
11 ноя 09, 14:42    [7914429]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
BOR123
Member

Откуда:
Сообщений: 1
У меня такая проблема
Как можно исправить ?
13 ноя 09, 11:52    [7924846]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
assa
Member [заблокирован]

Откуда: мы сами не местные
Сообщений: 3444
делюсь наблюдением. После сноса пж 8.3 (не снося data , а забрав ее предварительно в другое место) имел ошибку (кажется тоже - на создание кластера). Положив же по путям старый \data (со всеми правами postgres-а) - ошибок не имел (т.к. этот этап инсталяции пропускается). Дальше не разбирался. При первичной установке 8.3 и 8.4 (в другой порт) ошибок не было.
13 ноя 09, 12:09    [7925019]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
_cx_
Member

Откуда:
Сообщений: 32
assa
После сноса пж 8.3 (не снося data , а забрав ее предварительно в другое место) имел ошибку (кажется тоже - на создание кластера). Положив же по путям старый \data (со всеми правами postgres-а) - ошибок не имел (т.к. этот этап инсталяции пропускается). Дальше не разбирался.

Копированием директории кластера старой БД, созданной предыдущим PostgreSQL, Вы можете поиметь в дальнейшем много "пасхальных яиц". Вплоть до полного повреждения БД. Это связано с тем, что разработчики PostgreSQL частенько меняют структуру хранения данных на диске и новый сервер может не знать что ему подсунули кластер, созданный в более древней версии.
Для переноса данных создайте дамп Вашей БД на старой версии сервера (pg_dump.exe) и востановитесь из него на новом (pg_restore.exe). В этом случае БД "чище" и сервер с родным кластером работать будет хорошо.
16 ноя 09, 17:28    [7935585]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
assa
Member [заблокирован]

Откуда: мы сами не местные
Сообщений: 3444
_cx_
assa
После сноса пж 8.3 (не снося data , а забрав ее предварительно в другое место) имел ошибку (кажется тоже - на создание кластера). Положив же по путям старый \data (со всеми правами postgres-а) - ошибок не имел (т.к. этот этап инсталяции пропускается). Дальше не разбирался.

Копированием директории кластера старой БД, созданной предыдущим PostgreSQL, Вы можете поиметь в дальнейшем много "пасхальных яиц". Вплоть до полного повреждения БД. Это связано с тем, что разработчики PostgreSQL частенько меняют структуру хранения данных на диске и новый сервер может не знать что ему подсунули кластер, созданный в более древней версии.
Для переноса данных создайте дамп Вашей БД на старой версии сервера (pg_dump.exe) и востановитесь из него на новом (pg_restore.exe). В этом случае БД "чище" и сервер с родным кластером работать будет хорошо.
спасибо за лекция, начяльника. аднака я старая дата от 8.3 подложил "новой" серверке 8.3, а 8.4. у меня в другая директория стояла. и опять тама стоит. не путаются.



ЗЫ это я 8.3. разборку-сборку делаю. Т.к. жить слабо хочет. стартует редко. Отваливается. Хотел кластер 8.3 переустановкой пересоздать - дык *отказался, гад - о чём и сообщение, собственно было. (сервера отладочные, дампы всего снял. не жалко).
16 ноя 09, 18:22    [7935928]     Ответить | Цитировать Сообщить модератору
 Re: Делюсь опытом: побороть инсталлятор PostgreSQL в Windows  [new]
_cx_
Member

Откуда:
Сообщений: 32
При удалении через унинстал_PostgreSQL на чистит после себя раздел:
HKEY_CURRENT_USER\Software\PostgreSQL

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

При запуске службы могут быть сообщения вроде:
"1069" - в свойствах службы PostgreSQL откройте вкладку "Вход в систему" и явно укажите там с какой учетной записью (poatgres) необходимо её запускать и укажите пароль этого пользователя
"Служба была запущена, но потом..." - у сервера нет прав на использование кластера или собственную директорию.
30 ноя 09, 13:15    [7996264]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / PostgreSQL Ответить