Интернет

Установка и первоначальная настройка PostgreSQL. Установка PostgreSQL - Windows, Mac OS X, Linux

Установка и первоначальная настройка PostgreSQL. Установка PostgreSQL - Windows, Mac OS X, Linux

1. Установка

1.1. Установка из официального репозитория

Если для Вас важна последняя доступная версия PostgreSQL (если нет, я советую Вам хорошенько подумать), то Вам необходимо установить ее из официального репозитория PostgreSQL. Сделать это можно, следуя официальной инструкции . Затем, следует обновить пакеты:

$ sudo apt-get update

И установить PostgreSQL командой:

$ sudo apt-get install postgresql-x.x

  • x.x - необходимая версия

Список всех доступных версий можно посмотреть командой:

$ sudo apt-cache search postgresql

1.2. Установка из репозитория ОС

Установка PostgreSQL из репозитория ОС производится путем добавления двух основных пакетов:

$ sudo apt-get install postgresql postgresql-contrib

2. Консоль PostgreSQL

Все доступные операции над базами данных и пользователями производится из консоли psql .

2.1. Вход в консоль

Для начала необходимо войти в систему от пользователя postgres , это возможно только с правами root :

# su - postgres

Пользователь postgres - это своеобразный суперпользователь для базы данных PostgreSQL. Затем, из-под пользователя postgres можно войти в консоль:

Или проще, сразу входим в консоль psql под пользователем postgres :

$ sudo -u postgres psql

2.2. Выход из консоли

Когда выполнены все операции над пользователями и базами данных PostgreSQL в консоли psql, не сразу можно сообразить, как из нее выйти. Тут все очень просто:

Postgres=# \q

И, если это необходимо, уходим от пользователя postgres :

3. Пользователи PostgreSQL

3.1. Создание пользователя

Тут все достаточно просто:

# CREATE USER username WITH PASSWORD "12345";

  • username - логин нового пользователя
  • ‘12345’ - Пароль пользователя. Вводится в кавычках

3.2. Удаление пользователя

Тут еще проще:

# DROP USER username;

  • username - логин пользователя, которого необходимо удалить.

4. Базы данных

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

4.1. Создание базы данных

Тут все также, как при создании пользователя:

# CREATE DATABASE dbname;

  • dbname - имя создаваемой базы данных

4.2. Удаление базы данных

# DROP DATABASE dbname;
  • dbname - имя удаляемой базы данных

Прошу заметить, что база данных откажется удаляться в определенных случаях:

  • Если имеются пользователи с правами на эту базу. Перед удалением базы данных их права необходимо отозвать. Об этом далее.
  • Если имеется хотя бы одна незакрытая сессия соединения с базой данных. В этом случае сессии необходимо будет закрыть. В крайнем случае, можно просто остановить сервера, взаимодействующие с этой базой данных на момент ее удаления (хотя, смысла их запускать после удаления базы данных мало)

4.3. Назначение прав пользователям

Наличие базы данных и пользователей в системе PostgreSQL само по себе не дает результатов. Для корректной работы определенного пользователя с определенной базой данных, ему необходимо назначить права на работу с ней. Для этого выполняем комманду:

# GRANT ALL PRIVILEGES ON DATABASE dbname TO username;

  • dbname - имя базы данных, права над работой которой необходимо дать доступ
  • username - имя пользователя, которому будут предоставлены права над указанной базой данных

4.4. Удаление прав пользователей

Иногда, возникает необходимость сменить пользователя, управляющего базой данных, или просто отозвать права для ее последующего удаления. Рекомендую не пренебрегать этой командой и действовать по принципу “Один пользователь управляет одной базой данных”.

PostgreSQL - это объектно-реляционная система баз данных, которая обладает признаками традиционной коммерческой базы данных, с расширениями, которые будут доступны следующему поколению СУБД (систем управления базами данных).

Установка

Для установки PostgreSQL выполните следующую команду в терминале:

Sudo apt-get install postgresql

Сразу после установки вы можете настроить сервер PostgreSQL по вашим потребностям, хотя стандартная настройка вполне жизнеспособна.

Настройка

По умолчанию соединения через TCP/IP заблокированы. PostgreSQL поддерживает множество методов аутентификации. Метод аутентификации IDENT используется для postgres и локальных пользователей пока не настроено что-то еще. Обратитесь к , если вы собираетесь использовать какую-либо альтернативу типа Kerberos.

Дальнейшее обсуждение предполагает, что вы собираетесь разрешить соединения по TCP/IP и используете аутентификацию клиентов на основе метода MD5. Файлы настроек PostgreSQL хранятся в каталоге /etc/postgresql/ /main . Например, если вы установили PostgreSQL 8.4, файлы настроек сохранятся в каталоге /etc/postgresql/8.4/main.

Для настройки аутентификации ident добавьте записи в файл /etc/postgresql/8.4/main/pg_ident.conf. В файле содержатся подробные комментарии чтобы направлять вас.

Чтобы разрешить соединения по TCP/IP, отредактируйте файл /etc/postgresql/8.4/main/postgresql.conf. Найдите строку

#listen_addresses = "localhost"

и замените ее на:

Listen_addresses = "localhost"

Чтобы разрешить другим компьютерам соединяться с вашим PostgreSQL сервером, замените "localhost" на IP адрес вашего сервера или в качестве альтернативы на 0.0.0.0, чтобы подключить все интерфейсы.

Вы можете также редактировать любые другие параметры, если знаете что вы делаете! Для подробностей смотрите комментарии файла настроек или документацию по PostgreSQL.

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

Sudo -u postgres psql template1

Эта команда подключится к PostgreSQL базе данных template1 как пользователь postgres. После подключения к серверу PostgreSQL вы окажетесь в SQL консоли. Вы можете выполнить следующую SQL команду в консоли psql для настройки пароля пользователя postgres:

ALTER USER postgres with encrypted password "your_password";

После настройки пароля, измените файл /etc/postgresql/8.4/main/pg_hba.conf на использование MD5 аутентификации для пользователя postgres:

Local all postgres md5

Под конец вам потребуется перезапустить сервис PostgreSQL для применения новых настроек. Из терминала выполните следующее для перезапуска PostgreSQL:

Sudo /etc/init.d/postgresql-8.4 restart

Настройка выше в любом случае неполная. Пожалуйста обратитесь к руководству PostgreSQL Administrator"s Guide для настройки других параметров.

Ссылки

1. Как упоминалось выше, Administrator"s Guide - великолепный ресурс. Руководство также доступно из пакета postgresql-doc-8.4 . Выполните следующую команду в терминале для установки пакета.

Для Microsoft Windows , Mac OS X и Linux существует один установщик. Его можно скачать здесь . Кликните по иконке нужной версии установки PostgreSQL , соответствующей вашей операционной системе.

В некоторых из инструкций предполагается, что вы устанавливаете PostgreSQL 9.1. Если устанавливаете более новую версию, замените в этих инструкциях 9.1 на номер инсталлируемой вами версии СУБД.

Запустите установку

Когда программа попросит выбрать один из вариантов, сделайте следующее:

  • Когда вас попросят выбрать локаль, выберите UTF-8 . Если варианта UTF-8 в списке нет, выберите вариант UTF-8 в списке локалей для языка. Например, en_US.UTF-8 для английского языка США;
  • Если программа попросит установить StackBuilder – он инсталлирует некоторые дополнительные инструменты Web , репликации и ODBC , которые не требуются для CollectionSpace . Но может потребоваться инсталляция некоторых модулей PostgreSQL , таких как PostGIS .

Обратите внимание, что некоторые из перечисленных выше параметров могут не отображаться в зависимости от версии PostgreSQL и операционной системы.

Настройка PostgreSQL

Чтобы установленный PostgreSQL работал с CollectionSpace, необходимо настроить пользователей и изменить некоторые параметры.

  • Найдите конфигурационный файл pg_hba.conf . Он расположен в подкаталоге data каталога, в котором установлена PostgreSQL ;
  • Откройте этот файл в текстовом редакторе и следуйте приведенным ниже инструкциям;

В Mac OS X по умолчанию это папка /Library/PostgreSQL/9.1.
В Mac OS X нужно иметь права супер пользователя, чтобы редактировать любой из следующих файлов конфигурации.

  • Убедитесь, что для «local section » указано последнее слово md5 , а не ident :

# "local" is for Unix domain socket connections only local all all md5

  • Измените раздел «IPv4 local connections » следующим образом:

# IPv4 local connections: host all csadmin samehost md5

Это ограничивает набор пользователей PostgreSQL , которым предоставляется локальный доступ к трем базам данных, используемым CollectionSpace: jbossdb , nuxeo и cspace . Например, только пользователь с именем cspace или супер пользователь PostgreSQL с именем postgres может получить доступ к базе данных cspace с локальной машины.

При установке PostgreSQL 9.x на Windows 7 может не принять термин samehost в столбце CIDR-ADDRESS . Если это произойдет, используйте адресную форму 127.0.0.1/32 :

# IPv4 local connections: host all csadmin 127.0.0.1/32 md5

  • Убедитесь, что записи в разделе «IPv6 local connections » отключены. В качестве первого символа в строках указывается символ хэш (# ), если только в вашей системе не активен IPv6 :

# IPv6 local connections: #host all all::1/128 md5

Современные системы, работающие под управлением Windows 7 и Windows Vista , могут поставляться с включенным по умолчанию IPv6 . Если в вашей системе включен IPv6 , можно поэкспериментировать со следующей конфигурацией — указать ::1/128 для адреса localhost :

# IPv6 local connections: host all csadmin::1/128 md5

  • Если нужно разрешить создание отчетов при подключении к БД с удаленных хостов, тогда следует добавить запись, подобную приведенной ниже, но указав свой адрес подсети. Приведенная ниже конфигурация позволит создавать отчеты удаленно с хостов в определенной подсети UC Berkeley . Для получения дополнительной информации о том, как указать адрес подсети, ознакомьтесь с документацией по pg_hba.conf для используемого релиза PostgreSQL .

host all cspace_reader 169.229.0.0/16 md5

Если вы можете контролировать доступ к PostgreSQL через брандмауэр, то проще ввести значение listen_addresses «*» . Для большей безопасности можно ввести список разделенных запятыми IP-адресов , с которых будут связываться авторы отчетов.

  • Найдите файл postgresql.conf , находящийся в папке data каталога, в котором установлен PostgreSQL ;
  • Откройте этот файл в текстовом редакторе и внесите следующие изменения:

max_prepared_transactions = 64

Значение переменной max_prepared_transactions , равное 64 , может оказаться большим для вашей системы. Если это так, установите меньшее значение.

Если это значение действительно слишком велико для вашей системы, вы получите сообщение об ошибке при перезапуске PostgreSQL :
Restarting PostgreSQL … database server: main The PostgreSQL server failed to start. Please check the log output … FATAL: could not create shared memory segment: …

Перезапустите службу PostgreSQL

Если при запуске сервера после установки PostgreSQL выводятся сообщения об ошибках, обратитесь к разделу «Сбои при запуске сервера » в документации PostgreSQL по запуску сервера .

Linux:

Если вы являетесь пользователем root или sudo , можно выполнить следующую команду:

service postgresql restart

Mac:

Убедитесь, что вы являетесь пользователем postgres :

sudo su - postgres pg_ctl restart -D /Library/PostgreSQL/9.1/data

Флаг -D указывает местоположение каталога данных PostgreSQL, который также может быть установлен как переменная среды PGDATA. По умолчанию его можно найти по адресу /Library/PostgreSQL/9.1/data.

Если при попытке запустить pg_ctl вы получаете сообщение об ошибке «not found», попробуйте указать полный путь к этому файлу в подкаталоге bin каталога, в котором установлен PostgreSQL. Например: /Library/PostgreSQL/9.1/bin/pg_ctl restart -D /Library/PostgreSQL/9.1/data

Чтобы добавить PGDATA в качестве глобальной переменной среды в / etc / profile , выполните следующие шаги:

sudo vi /etc/profile

Затем добавьте следующую строку:

export PGDATA=»/Library/PostgreSQL/9.1/data»

После этого можно будет выполнить предыдущую команду для перезапуска сервера PostgreSQL без флага -D .

Windows:

При установке PostgreSQL Windows у вас должны быть права администратора. Кликните правой кнопкой мыши по ярлыку «Мой компьютер » и выберите пункт «Управление ». В пользовательском интерфейсе «Управление » выберите «Службы и приложения » — «Службы ». Найдите службу PostgreSQL («postgresql-9.0 — PostgreSQL Server 9.0» ), выберите ее и нажмите на кнопку «Перезапустить службу ».

Настройка типов данных

Откройте консоль PostgreSQL для базы данных template1 :

Если при попытке запустить psql на экране появится сообщение not found», попробуйте указать полный путь к этому файлу в подкаталоге bin; например на Mac OS X: /Library/PostgreSQL/9.1/bin/psql.

Linux:

Выполните в консоли две следующие команды:

su - postgres psql -d template1 #open the database template1

Mac:

Под пользователем postgres выполните следующие две команды:

Sudo su - postgres Psql -d template1

При первом запуске команды psql на OS X 10.8.X вы можете увидеть сообщение об ошибке:

dyld: Library not loaded: @loader_path/../lib/libssl.dylib Referenced from: /usr/lib/libpq.5.dylib Reason: Incompatible library version: libpq.5.dylib requires version 1.0.0 or later, but libssl.0.9.8.dylib provides version 0.9.8

Это связано с тем, как Homebrew в Mac OS X и Mountain Lion конфликтуют с определенными системными библиотеками. Решение этой проблемы заключается в том, чтобы скопировать и связать версии библиотеки. PostgreSQL упакован в /usr/lib , где библиотеки хранятся в Mountain Lion .

sudo cp /Library/PostgreSQL/9.1/lib/libssl.1.0.0.dylib /usr/lib sudo cp /Library/PostgreSQL/9.1/lib/libcrypto.1.0.0.dylib /usr/lib sudo ln -fs /usr/lib/libssl.1.0.0.dylib /usr/lib/libssl.dylib sudo ln -fs /usr/lib/libcrypto.1.0.0.dylib /usr/lib/libcrypto.dylib

Еще одним решением может стать пересмотр Homebrew и проверка совместимости с Mountain Lion .

При установке PostgreSQL на Mac OS X в один клик создается ярлык для оболочки PostgreSQL в каталоге Applications / PostgreSQL 9.0 / . Нажмите SQL Shell (psql).app , чтобы открыть новое окно терминала с запущенным psql .

Из этого окна терминала можно получить доступ к базе данных template1 , введя:

psql c template1

Windows:

psql запускается из командной строки (cmd ) Windows . Убедитесь, что путь к папке postgres bin хранится в переменной PATH , или просто вызовите ее с полным путем к месту расположения исполняемого файла psql :

psql -d template1 -U postgres

Выполните команды консоли:

CREATE FUNCTION pg_catalog.text(integer) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS "SELECT textin(int4out($1));"; CREATE CAST (integer AS text) WITH FUNCTION pg_catalog.text(integer) AS IMPLICIT; COMMENT ON FUNCTION pg_catalog.text(integer) IS "convert integer to text"; CREATE FUNCTION pg_catalog.text(bigint) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS "SELECT textin(int8out($1));"; CREATE CAST (bigint AS text) WITH FUNCTION pg_catalog.text(bigint) AS IMPLICIT; COMMENT ON FUNCTION pg_catalog.text(bigint) IS "convert bigint to text";

Создайте пользователя csadmin

Для PostgreSQL установки и настройки в командной строке psql (заканчивающейся на # ) переключитесь с базы данных template1 на postgres , введя следующее:

c postgres

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

CREATE ROLE csadmin LOGIN PASSWORD ‘replacemewithyourpassword’ SUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

В результате вы должны увидеть сообщение, подобное этому: CREATE ROLE .

Закройте программу psql , введя q (или нажав Ctrl + d ).

Теперь перезапустите сервер PostgreSQL еще раз (как описано выше ).

Дополнительная настройка

Дополнительная настройка базы данных является необязательной! CollectionSpace будет выполняться, даже если ни одно из описанных ниже действий не будет выполнено.

Ниже приведена обобщенная версия инструкций, размещенных здесь . Если вы хотите получить более подробную информацию, пожалуйста, обратитесь к этой странице .

PostgreSQL установка и настройка Windows выполняется через postgresql.conf . Откройте этот файл в текстовом редакторе и отредактируйте следующие значения:

shared_buffers = 512MB

Теперь через командную строку задайте значение kernel.shmmax . Оно должно как минимум равняться shared_buffer + 128MB :

sysctl kernel.shmmax=650000000

  • Tutorial

Мне хотелось создать прекрасный объемлющий мануал Getting Start без всякой воды, но включающий основные плюшки для начинающих по системе PostgreSQL в Linux.

PostgreSQL является объектно-реляционной системой управления базами данных (ОРСУБД) на основе POSTGRES, версия 4.2 , разработанной в Университете Калифорнии в Беркли департаменте компьютерных наук.

PostgreSQL является open source потомком оригинального кода Berkeley. Он поддерживает большую часть стандарта SQL и предлагает множество современных функций:

  • Cложные запросы
  • Управление конкурентным доступом с помощью многоверсионности
Кроме того, PostgreSQL может быть расширен пользователем во многих отношениях, например, путем добавления новых
  • типов данных
  • функций
  • операторов
  • агрегатных функций
  • индекс методов
  • процедурных языков

Сборка и установка

Как и все любители мейнстрима PostgreSQL мы будем конечно же собирать, а не скачивать готовые пакеты (в репозитариях Debian, например, нет последней версии). Вот лежит множество версий, скачивать конечно же лучше всего последнюю. На момент написания поста это версия 9.2.2

Wget http://ftp.postgresql.org/pub/source/v9.2.2/postgresql-9.2.2.tar.gz tar xzf postgresql-9.2.2.tar.gz
Теперь у нас есть директория с исходниками сей прекрасной базы данных.
По умолчанию файлы базы будут установлены в директорию /usr/local/pgsql, но эту директорию можно изменить задав

Prefix=/path/to/pgsql
перед командой./configure
Перед сборкой можно указать компилятор С++

Export CC=gcc
PostgeSQL может использовать readline библиотеку, если у вас её нет и нет желания её ставить просто укажите опцию

Without-readline
Надеюсь у всех есть Autotools ? Тогда вперед к сборке:

Cd postgresql-9.2.2 ./configure --without-readline sudo make install clean
Все господа! Поздравляю!

Настройка

Нам необходимо указать хранилище данных наших баз данных (кластер) и запустить её.

Есть один нюанс - владельцем директории данных и пользователь, который может запускать базу должен быть не root. Это сделано в целях безопасности системы. Поэтому создадим специального пользователя
sudo useradd postgres -p postgres -U -m
И далее все понятно

Sudo chown -R postgres:postgres /usr/local/pgsql
Важный процесс. Мы должны инициализировать кластер баз дынных. Сделать мы должны это от имени пользователя postgres

Initdb -D /usr/local/pgsql/data
Теперь нужно добавить запуск PostgreSQL в автостарт. Для этого существует уже готовый скрипт и лежит он в postgresql-9.2.2/contrib/start-scripts/linux
Этот файл можно открыть и обратить внимание на следующие переменные:

  • prefix - это место куда мы ставили PostgreSQL и задавали в./configure
  • PGDATA - это то, где хранится кластер баз данных и куда должен иметь доступ наш пользователь postgres
  • PGUSER - это тот самый пользователь, от лица которого будет все работать
Если все стоит верно, то добвляем наш скрипт в init.d

Sudo cp ./postgresql-9.2.2/contrib/start-scripts/linux /etc/init.d/postgres sudo update-rc.d postgres defaults
Перезапускам систему, чтобы проверить что наш скрипт работает.
Вводим

/usr/local/pgsql/bin/psql -U postgres
И если появится окно работы с базой, то настройка прошла успешно! Поздравляю!
По умолчанию создается база данных с именем postgres

# TYPE DATABASE USER ADDRESS METHOD local all all trust host all all 127.0.0.1/32 trust host all all::1/128 trust
Первая строка отвечает за локальное соединение, вторая - за соединение про протоколу IPv4, а третья по протоколу IPv6.
Самый последний параметр - это как раз таки метод авторизации. Его и рассмотрим (только основные)

  • trust - доступ к базе может получить кто угодно под любым именем, имеющий с ней соединение.
  • reject - отклонить безоговорочно! Это подходит для фильтрации определенных IP адресов
  • password - требует обязательного ввода пароля. Не подходит для локальных пользователей, только пользователи созданные командой CREATE USER
  • ident - позволяет только пользователем зарегистрированным в файле /usr/local/pgsql/data/pg_ident.conf устанавливать соединение с базой.
Вкратце расскажу об основных утилитах, которые пригодятся в работе.

Утилиты для работы с базой

pg_config
Возвращает информацию о текущей установленной версии PostgreSQL.
initdb
Инициализирует новое хранилище данных (кластер баз данных). Кластер представляет собой совокупность баз данных управляемых одним экземпляром севера. initdb должен быть запущен от имени будущего владельца сервера (как указано выше от имени postgres).
pg_ctl
Управляет процессом работы сервера PostgreSQL. Позволяет запускать, выполнять перезапуск, останавливать работу сервера, указать лог файл и другое.
psql
Клиент для работы с базой дынных. Позволяет выполнять SQL операции.
createdb
Создает новую базу данных. По умолчанию, база данных создается от имени пользователя, который запускает команду. Однако, чтобы задать другого - необходимо использовать опцию -O (если у пользователя есть необходимые привилегии для этого). По сути - это обертка SQL команды CREATE DATABASE.
dropdb
Удаляет базу данных. Является оберткой SQL команды DROP DATABASE.
createuser
Добавляет нового пользователя базы дынных. Является оберткой SQL команды CREATE ROLE.
dropuser
Удаляет пользователя базы данных. Является оберткой SQL команды DROP ROLE.
createlang
Добавляет новый язык программирования в базу PostgreSQL. Является оберткой SQL команды CREATE LANGUAGE.
droplang
Удаляет язык программирования. Является оберткой SQL команды DROP LANGUAGE.
pg_dump
Создает бэкап (дамп) базы данных в файл.
pg_restore
Восстанавливает бэкап (дамп) базы данных из файла.
pg_dumpall
Создает бэкап (дамп) всего кластера в файл.
reindexdb
Производит переиндексацию базы данных. Является оберткой SQL команды REINDEX.
clusterdb
Производит перекластеризацию таблиц в базе данных. Является оберткой SQL команды CLUSTER.
vacuumdb
Сборщик мусора и оптимизатор базы данных. Является оберткой SQL команды VACUUM.

Менеджеры по работе с базой

Что касается менеджера по работа с базой, то есть php менеджер - это

С момента выхода прошлой статьи об установке 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 , там есть ответ на вопрос, что можно сделать в таком случае.


В этом окне вам предлагается указать другой порт 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 и это надо понимать и учитывать при дальнейшей работе