|
PostgreSQL - это второй из известных мне бесплатных серверов баз данных, пригодных для
реализации более-менее серьёзного проекта. Первый - Interbase/FireBird,
о котором я писал чуть раньше.
Мне трудно судить о том, какой из них лучше, потому, что знаю и тот и другой очень
поверхностно. Однако, без сомнения, оба они достойны внимания.
Ниже речь пойдёт только об установке сервера PostgreSQL под Windows'98.
Как оказалось, это большая проблема, так как версии под win32 на момент написания
этой заметки нет. Устанавливать приходится версию, специально откомпилированную под
эмулятор UNIX Cygwin. Поэтому всё так сложно:
Установить CygWin. Для этого на сайте www.cygwin.com
щёлкнуть "Install Cygwin now". Это приведет к загрузке небольшого файла setup.exe,
который надо будет после загрузки запустить и в предложенном меню выбрать
"Download from Internet". Дальше выбрать как, куда и откуда качать. Потом будет
предложен набор пакетов для установки.
Кроме пакетов по-умолчанию следует отметить ещё и PostgreSQL последней версии.
Если при загрузке какого-либо из пакетов возникнет ошибка, то можно запустить
Setup заново и выбрать другой сервер. При этом он загрузит только те пакеты,
которых реально не хватает.
После скачивания надо снова запустить setup.exe и выбрать Install from
Local Directory". Далее - всё по умолчанию (только проверьте, отмечен ли
для установки PostgreSQL).
Установить cygipc. Для этого на сайте www.cygwin.com
зайти в раздел Software, найти там cygipc и скачать последнюю версию.
Для его распаковки понадобится архиватор bzip2, который можно взять, например,
на том же ftp://cygwin.com. Также годится последняя версия
архиватора 7-Zip.
Потом посмотреть \usr\doc\Cygwin\postgresql-XXXX.README,
скачать и доустановить что нужно вручную. С устаревшими версиями пакетов
сервер может работать не правильно или не работать вообще.
Создать любым текстовым редактором автозагрузочный скрипт с названием .bashrc
или .profile, в зависимости от версии cygwin, и поместить его в домашний каталог
пользователя (обычно это C:\cygwin\home\<Текущий пользователь Windows>):
PATH=$PATH:/usr/local/bin
PGDATA=/usr/share/postgresql/data
PGLIB=/lib/postgresql
LD_LIBRARY_PATH=/lib/postgresql
export LD_LIBRARY_PATH PATH PGDATA PGLIB
Возможно, реальные пути будут отличаться от перечисленных выше.
Разумеется, надо указывать именно их. Как мне кажется, смысл большинства
из переменных этого скрипта очевиден, кроме, может быть, добавки /usr/local/bin
к переменной PATH. Это путь к ipc-daemon. Если разместить его файлы в /bin,
то данная строчка вообще не нужна.
Добавить в Autoexec.bat путь к cygwin (именно в начало переменной PATH):
PATH C:\cygwin\bin;%PATH%
и перезагрузить компьютер.
Запустить cygwin и, убедившись, что описанный выше скрипт успешно отработал
(например, выведя содержимое переменной PGDATA: echo $PGDATA),
выполнить в его среде команды:
ipc-daemon &
initdb
postmaster -i &
Проверить успешность установки можно запустив терминал psql
psql template1
Остановить сервер проще всего командой
pg_ctl stop
PS:
При инициализации сервера (initdb) в качестве имени суперпользователя будет
использовано имя текущего пользователя Windows с пустым паролем.
Это надо учитывать при последующих запусках сервера и подключении к нему.
Также надо помнить, что, в отличие от Windows, Linux и cygwin чувствительны
к регистру символов, в частности, в имени пользователя.
Когда всё уже достаточно проверено и отлажено, команды для автоматического
запуска сервера имеет смысл добавить в автозагрузочный скрипт.
Если стартовать сервер командой postmaster -i &, то все его сообщения
будут выводиться на экран. Запуск строкой
postmaster -i >>pg_sql.log 2>&1 &
перенаправит вывод в файл pg_sql.log в текущем каталоге.
Все ссылки были актуальны на момент написания этой заметки, но со временем, по мере
появления новых версий программ, многие из них будут неизбежно устаревать. Это не
стоит считать большой проблемой, так как всё необходимое программное обеспечение
можно будет найти самостоятельно на указанных или других серверах в Интернет.
Я не вполне уверен, что всё написанное абсолютно правильно, однако такая схема
успешно сработала на двух компьютерах с русскими версиями Win'98 и Win'98 SE, а также
на сервере Windows NT 4.0 SP6. Судя по откликам читателей, установка на Windows'2000
также проходит успешно.
Ещё надо иметь ввиду, что быстродействие и надежность такой системы, скорее всего,
ниже, чем в случае обычной установки на UNIX и подобные системы. Поэтому, могу
порекоменовать использовать её только для общего тестирования и на начальных этапах
разработки.
Русскоязычную информацию можно найти на сервере
POSTGRES.RU
ODBC драйвер и оригинальную документацию - на сервере
PostgreSQL
|