Установка PostgreSQL 9.0.1 на Windows 7

Маленькое предисловие

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

Проблема в том, что надо хотя бы обладать какими-то базовыми знаниями в администрировании PostgreSQL, чтобы устанавливать сервер PostgreSQL. На форуме постоянно задают вопросы не зная даже элементарных вещей и основ. Особенно свирепствуют игроки покера и владельцы программы Holdem Manager, которые мало того, что ничего кроме покера не знают, так и знать не хотят. Например, я ведь не прихожу на покерный форум не читая правил покера и не требую на пальцах объяснить мне как выйграть миллион. Мне же тоже не очень интересно поддерживать пользователей коммерческих программ на бесплатной основе, тем более, что эти пользователи никогда ничего не сделают полезного для сообщества PostgreSQL, выступая исключительно как потребители.

Итак! Страдальцами Windows посвящается....



Версии PostgreSQL 9.x и исходные данные


Начиная с версии 9.0 для Windows предоставляются собранные версии как 32-bit так и 64-bit. В данной статье рассматривалась установка 64-битной версии PostgreSQL 9.0.1 на 64-битную версию Windows 7 Home Basic. Установка производилось от пользователя, имеющего административные права. Не вижу причин и каких-либо препятствий, по которым установка 32-битной версии чем-то отличалась от 64-битной, а также каких-то принципиальных различий между Windows 7 Home Basic и другими редакциями Windows 7.

Поехали


Берём архив с установкой PostgreSQL. Я взял версию 9.0.1 прямо с этой странички. Сохраняем в любой временный каталог, например c:\tmp. Запускаем. После стандартного предупреждения Windows о том, что мы пытаемся запустить приложение от стороннего разработчика, на что мы отвечаем утвердительно, начинается процесс установки:

Как видим, сперва появляется картинка, о том, что Windows конфигурирует библиотеку Visual C++. Не зная подробностей, рискну предположить, что эта библиотека распространяется с PostgreSQL для Windows, потому что PostgreSQL на платформе Windows компилировался на Visual C++. Тем не менее, появляется следующая картинка, уже более имеющая отношение к установке:

Это начальное диалоговое окно, предлагающее вам начать установку. Щёлкаем по Next и получаем следующее окно:

В этом диалоговом окне вам предлагается указать каталог, в который будет устанавливаться PostgreSQL. Лично меня вполне устроил путь, предложенный по умолчанию инсталлятором, поэтому я нажал Next и получил следующее окно:

В этом диалоговом окне вам предлагается указать каталог, в котором будут хранится файлы с базами данных. Это довольно удобно и разработчики логично предположили, что многие могут захотеть хранить данные на других дисках, скажем более быстрых, для увеличения производительности БД. Раньше, конечно, это тоже можно было настроить через файл конфигурации, но теперь это можно сделать уже на этапе установки. Лично меня вполне устроил путь, предложенный по умолчанию инсталлятором, поэтому я нажал Next и получил следующее окно:

Ну вот мы и добрались до первого и многочисленного источника вопросов на форуме. Просто куча народу спрашивает какой пароль вводить? Неужели так трудно прочитать что написано? Ну да, я понимаю, что кто-то в школе на уроках английского тупо спал, а кто-то изучал немецкий, но ведь есть же языковые инструменты Google, где в большинстве случаев можно быстро получить вполне осмысленный перевод непонятной английской фразы! Опять ломает? Ладно, перевожу специально для таких: "Пожалуйста, предоставьте пароль для суперпользователя баз данных (postgres) и учётной записи службы (postgres). Если учётная запись службы уже существует в Windows, вы должны ввести текущий пароль этой учётной записи. Если данная учётная запись не существует, она будет создана, когда вы нажмёте Next"

Всё ещё непонятно? Тогда для тех, кто не читал документацию, объясняю на пальцах. Есть в Windows учётные записи пользователей. Наверняка вы сейчас работаете под одной из них, ибо учётная запись всегда имеет имя пользователя. Так вот, PostgreSQL в Windows работает не от администратора, а тоже от имени учётной записи пользователя, имя которого postgres. Сделано это было прежде всего из соображений безопасности, чтобы никакие вредители не смогли получить права администратора, даже если они каким-то образом найдут дыру в безопасности самого PostgreSQL. Далее. В самой СУБД PostgreSQL есть такой специальный пользователь - суперпользователь, который имеет максимальные права внутри СУБД, т.е. может создавать или удалять любые базы данных и любых пользователей. Он тоже имеет имя postgres. Несмотря на то, что имена пользователей учётной записи и суперпользователя PostgreSQL одинаковы - это разные пользователи, никак не связанные друг с другом. Но для того, чтобы вы потом не путались с разными паролями, вам предлагают задать один и тот же пароль для них обоих.

Многие спрашивают: а что делать, если мы ставим PostgreSQL повторно, а старый пароль забыли? Интересно, а голову они дома не забывают, когда уходят на работу или погулять? Иначе как раздолбайством такое не назовёшь. Однако, читайте внимательно специальный FAQ, там есть ответ на вопрос, что можно сделать в таком случае.

Итак, пароль ввели, поехали дальше Next:

В этом окне вам предлагается указать другой порт TCP/IP для PostgreSQL. Не вижу причин менять тот, который предлагается по умолчанию. Щёлкаем Next:

В этом окне вам предлагается выбрать локаль, с использованием которой будет инициализирован кластер баз данных и которая в дальнейшем будет использоваться по умолчанию при создании других баз данных. Это довольно важный шаг, ибо локаль определяет такой важный параметр как кодировка данных в базах. На картинке вы видите, что я выбрал "Russia, Russia". В этом случае, кодировка вашей БД будет windows-1251. Возможно, это именно то, что вам нужно, но большинство людей всё-таки предпочитает работать с кодировкой UTF-8. Эта кодировка будет установлена в том случае, если в данном окне вы выберите локаль по умолчанию: "by default". Перед тем как выбрать локаль хорошенько подумайте. Если вы устанавливаете PostgreSQL для обеспечения работы какого-либо приложения, прочтите документацию к нему, возможно это приложение требует какую-то конкретную кодировку. После того, как вы выбрали локаль, щёлкаете Next:

Инсталлятор вам радостно говорит. что он типа готов наконец начать установку. Щёлкаем Next. Начинается процесс копирования файлов в указанный ранее каталог. После чего в этом же окошке вы увидите:

где советую обратить внимание на слова: "Initialising database cluster" (инициализирую кластер баз данных), означающие, что копирование файлов закончено и создаётся первая база данных, которая будет затем использоваться как шаблон для всех остальных баз. Через некоторое время эта надпись сменяется на "starting database server" (запускаю сервер баз данных), что означает запуск службы сервера PostgreSQL. После чего появляется окно окончания установки:

Здесь нам предлагается ещё запустить инструмент установки дополнительных компонентов PostgreSQL, но мне это не интересно, поэтому снимаю галочку и щёлкаю на Finish

Это всё! Установка завершена! Особо параноидальные товарищи, могут запустить Диспетчер Задач, щёлкнуть по вкладке Службы и убедиться, что PostgreSQL работает:

Вопросы по pgAdminIII


Многие задают вопрос. Вот я запустил pgAdminIII, ярлык на который появляется в меню Пуск сразу после установки, а там мне рисует картинку, где сервер PostgreSQL перечёркнут красным крестиком, вот так:

"памажите, добрые люди, а чо делать та?"

Ну хотя бы соединение с сервером установить для начала, для чего тупо дважды щёлкнуть по этому самому значку сервера, перечёркнутому красным крестиком. Появится окошко, в котором вас попросит ввести пароль для пользователя postgres, тот самый пароль который вы вводили раннее, при установке. Если вы введёте его правильно, красный крестик исчезнет и окно pgAdminIII примет вид:

Подключение к серверу PostgreSQL с помощью утилиты командной строки psql


Показываю на картинке:

Обратите внимание, что утилите ЯВНО нужно указать с каким пользователем производить подключение к серверу и опять же ввести тот самый пароль, о котором так много писалось выше.

Ещё обратите внимание на предупреждающее сообщение о несовпадении текущей кодировки в консоли и кодировки сервера. Дело в том, что согласно нашей установке мы выбрали ранее локаль Russia, Russia, что привело к выбору кодировки windows-1251, но консоль (командная строка) Windows работает в кодировке cp866 и это надо понимать и учитывать при дальнейшей работе

В заключение


На предмет возможных грабель при установке (и откуда их только берут и как умудряются наступить) не забудьте прочитать раздел "Проблемы при установке" в моём специальном FAQ.

Авторские права


Автором данного документа является: Виктор Вислобоков
Первоначальное местоположение данного документа: http://postgresql.ru.net/docs/win7_inst.html
Разрешается свободное использование данного документа в электронном виде, копирование, распространение, размещение на web-сайтах при условии обязательного сохранения данного раздела об авторских правах, а также при условии открытого и бесплатного доступа к этому документу. Любое коммерческое использование материалов данного документа, а также использование в печатных изданиях разрешается только с письменного согласия автора.

ВложениеРазмер
1.png10.29 kb
2.png53.18 kb
3.png14.9 kb
4.png14.13 kb
5.png15.84 kb
6.png11.82 kb
7.png13 kb
8.png12.24 kb
9.png14.74 kb
10.png58.79 kb
11.png37.64 kb
12.png42.12 kb
13.png43.56 kb
14.png11.42 kb

Комментарии

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Установка на Windows7 x64

В процессе установки может написать, что дексать мол "не могу прочитать файл postgresql.conf" из папки данных и - кирдык!
Причина - не в правах доступа к папке с данными, как пишет в своём FAQ автор статьи, а в том, что ваш администраторский профиль содержит в названии символы кириллицы (наивно полагать, что в 21 веке удалось решить эту проблему!)

Лечится до безобразия просто:

1. В службах запускаем "Вторичный вход в систему" и ставим тип запуска - "Автозапуск"
2. Создаём нового пользователя в системе с названием латинскими буквами и правами администратора - к примеру "Sexy"
3. Жмём "Выход из системы" и входим с учётной записью "Sexy"
4. Запускаем инсталлятор PostgreSQL 9.x x64 от имени администратора и наслаждаемся ЧИСТОЙ установкой!!! Wow!!!
5. Проверяем работоспособность сервера подключением к template1 из psql - "psql -U postgres -W template1" (на запрос ввести пароль, указанный при инсталляции!)
6. Выходим из учётной записи "Sexy" и заходим в нашу обычную, грохаем учётную запись "Sexy" со всеми файлами.
7. Пишем премногую благодарность мне на cx@ukr.net за сэкономленых несколько часов (или больше, кому как) времени!

Try & enjoy!

Установка на ОС семейства Windows

Мне также часто встречался баг, когда установка повисает на последнем шаге -- инициализации кластера.
Дело тут все в той же кирилице в имени профиля пользователя...

Во время установки на

Во время установки на завершающем этапе "Initialising database cluster" появляется окно с ошибкой "Warning. Problem running post-install step. Installation may not complete correctly. The database cluster initialisation failed". С чем это связано?

Триал период - 45 дней в энтерпрайз менеджере

Это нормально , наличие триал периода, написано - free ? или что то не до понял ?

EnterpriseDB - это

EnterpriseDB - это коммерческая сборка PostgreSQL с уже вкомпилированными дополнительными расширениями и инструментами. А Free (по BSD лицензии) это сам PostgreSQL.

В этой статье речь идёт именно о Free, о PostgreSQL. Но компания, которая занимается поддержкой и продажей EnterpriseDB также делает пакеты PostgreSQL под Windows, осюда и банер на заставке инсталлятора "PACKAGED by EnterpriseDB", т.е. УПАКОВАНО, но не более того.

Кодировка БД и локаль.

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

Кодировка БД и локаль - не одно и то же.
Кодировка будет задана на этапе создания БД и по-умолчанию она UTF-8, там же можно указать и другую локаль.
Локаль задаёт набор параметров, определяющий региональные настройки пользовательского интерфейса, например, формат даты и времени.
Поправьте пожалуйста в тексте.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2010