Установка. Предполагается, что в текущей директории находятся 4 нижеперечисленных файла из дистрибутива PostgreSQL (версия не имеет значения): postgresql;
Предполагается, что в текущей директории находятся 4 нижеперечисленных файла из дистрибутива PostgreSQL (версия не имеет значения):
- postgresql;
- postgresql-contrib;
- postgresql-libs;
- postgresql-server.
debian40r3:~/psql# ls postgresql-8.2.6-2.1C.i386.rpm postgresql-libs-8.2.6-2.1C.i386.rpm postgresql-contrib-8.2.6-2.1C.i386.rpm postgresql-server-8.2.6-2.1C.i386.rpm debian40r3:~/psql#
Преобразуем rpm-пакеты при помощи утилиты alien:
debian40r3:~/psql# alien --to-tgz *.rpm postgresql-8.2.6.tgz generated postgresql-contrib-8.2.6.tgz generated postgresql-libs-8.2.6.tgz generated postgresql-server-8.2.6.tgz generated debian40r3:~/psql#
Создаем директорию для хранения распакованных файлов и распаковываем в нее все архивы при помощи следующих двух команд:
debian40r3:~/psql# mkdir unpacked debian40r3:~/psql# for line in `ls *.tgz`; do tar -zxf $line -C unpacked; done debian40r3:~/psql#
Предустановочные скипты дистрибутива предназначены для другой операционной системы, и в Debian они будут работать некорректно, поэтому нужно выполнить следующие действия:
- создать группу и пользователя postgres;
- создать пустой файл /var/log/pgsql, сделать его владельцем postgres:postgres, и запретить остальным пользователям доступ к этому файлу.
Это осуществляется следующими командами:
debian40r3:~/psql# groupadd -g 26 -o postgres debian40r3:~/psql# useradd -g postgres -o -r -d /var/lib/pgsql -s /bin/bash -c "PostgreSQL Server" -u 26 postgres debian40r3:~/psql# touch /var/log/pgsql debian40r3:~/psql# chown postgres:postgres /var/log/pgsql debian40r3:~/psql# chmod 0700 /var/log/pgsql debian40r3:~/psql#
После этого копируем распакованные файлы, удаляем временную директорию и архивы и обновляем кеш системных библиотек.
debian40r3:~/psql# mv unpacked/etc/rc.d/init.d/postgresql /etc/init.d debian40r3:~/psql# rm unpacked/etc/rc.d/ -r debian40r3:~/psql# cp -r unpacked/etc/ / debian40r3:~/psql# cp -r unpacked/var/ / debian40r3:~/psql# cp -r unpacked/usr/ / debian40r3:~/psql# rm -rf unpacked *tgz debian40r3:~/psql# ldconfig debian40r3:~/psql#
Сменим владельца каталога /var/lib/pgsql и добавим стартовый скрипт /etc/init.d/postgres в автозагрузку.
debian40r3:~/psql# chown postgres:postgres -R /var/lib/pgsql debian40r3:~/psql# update-rc.d postgresql defaults Adding system startup for /etc/init.d/postgresql... /etc/rc0.d/K20postgresql ->../init.d/postgresql /etc/rc1.d/K20postgresql ->../init.d/postgresql /etc/rc6.d/K20postgresql ->../init.d/postgresql /etc/rc2.d/S20postgresql ->../init.d/postgresql /etc/rc3.d/S20postgresql ->../init.d/postgresql /etc/rc4.d/S20postgresql ->../init.d/postgresql /etc/rc5.d/S20postgresql ->../init.d/postgresql debian40r3:~/psql#
Далее необходимо вставить в командную строку содержимое следующей команды (вместе с символом новой строки после EOF в конце):
debian40r3:~/psql# cat <<EOF > /tmp/header echo_failure() { echo -n FAIL } echo_success() { echo -n OK } failure() { echo_failure } success() { echo_success } EOF
Таким образом будет создан файл /tmp/header, содержащий в себе функции, которые нужно будет добавить в файл /etc/init.d/postgresql.
Далее модифицируем файл /etc/init.d/postgres, добавляя к нему файл с необходимыми функциями и комментируем строки ". $INITD/functions" и ". /etc/sysconfig/network":
debian40r3:~# mv /etc/init.d/postgresql{,.tmp} debian40r3:~# mv /tmp/header /etc/init.d/postgresql debian40r3:~# cat /etc/init.d/postgresql.tmp | sed 's|\(. $INITD/functions\)|#\0|' | sed 's|\(. /etc/sysconfig/network\)|#\0|' >> /etc/init.d/postgresql debian40r3:~# rm /etc/init.d/postgresql.tmp debian40r3:~# chmod +x /etc/init.d/postgresql
После этого инициализируем базу данных:
debian40r3:~# /etc/init.d/postgresql initdb Инициализируется база данных: [ OK ] debian40r3:~#
Меняем пароль для учетной записи SQL-сервера postgres. Сначала нужно изменить настройки безопасности: для этого в последней строке файла /var/lib/pgsql/data/pg_hba.conf нужно заменить "md5" на "trust". Таким образом, мы включаем "доверительный" режим. Отредактировать файл можно в любом текстовом редакторе, а в данном примере это делается при помощи следующих команд:
debian40r3:~# mv -f /var/lib/pgsql/data/pg_hba.conf{,.tmp} debian40r3:~# sed 's/md5$/trust/' < /var/lib/pgsql/data/pg_hba.conf.tmp > /var/lib/pgsql/data/pg_hba.conf debian40r3:~# /etc/init.d/postgresql start Запускается служба postgresql: [ OK ]
Теперь соединяемся с SQL-сервером под учетной записью postgres и меняем пароль учетной записи SQL-сервера postgres:
debian40r3:~# psql -d template1 -U postgres -h localhost Welcome to psql 8.3.3, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit template1=# alter user postgres with password 'new_password'; ALTER ROLE template1=# \q debian40r3:~#
Возвращаем настройки обратно и перезапускаем сервер:
debian40r3:~# mv -f /var/lib/pgsql/data/pg_hba.conf{.tmp,} debian40r3:~# /etc/init.d/postgresql restart Останавливается служба postgresql: [ OK ] Запускается служба postgresql: [ OK ] debian40r3:~#
Сервер PostgreSQL готов к работе!
Дистрибутив можно взять тут http://ftp.etersoft.ru/pub/Etersoft/Postgres@Etersoft/stable/ 1 | 2 | 3 | 4 | 5 | Поиск по сайту:
|