9 шагов для установки и настройки PostgreSQL из исходного кода в Linux

Мы предоставляем услуги удаленного администрирования серверов

9 шагов для установки и настройки PostgreSQL из исходного кода в Linux

Поделиться

Как и в случае с MySQL, postgreSQL — это очень известная и функционально бесплатная база данных с открытым исходным кодом .

В этой статье мы рассмотрим, как установить базу данных postgreSQL в Linux из исходного кода.Шаг 1: Загрузите исходный код postgreSQL на сайте загрузки postgreSQL

Шаг 2: Установите postgreSQL

# tar xvfz postgresql-8.3.7.tar.gz 

# cd postgresql-8.3.7

# ./configure
checking for sgmlspl... no
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating src/Makefile.global
config.status: creating src/include/pg_config.h
config.status: creating src/interfaces/ecpg/include/ecpg_config.h
config.status: linking ./src/backend/port/tas/dummy.s to src/backend/port/tas.s
config.status: linking ./src/backend/port/dynloader/linux.c to src/backend/port/dynloader.c
config.status: linking ./src/backend/port/sysv_sema.c to src/backend/port/pg_sema.c
config.status: linking ./src/backend/port/sysv_shmem.c to src/backend/port/pg_shmem.c
config.status: linking ./src/backend/port/dynloader/linux.h to src/include/dynloader.h
config.status: linking ./src/include/port/linux.h to src/include/pg_config_os.h
config.status: linking ./src/makefiles/Makefile.linux to src/Makefile.port

# make
make[3]: Leaving directory `/usr/save/postgresql-8.3.7/contrib/spi'
rm -rf ./testtablespace
mkdir ./testtablespace
make[2]: Leaving directory `/usr/save/postgresql-8.3.7/src/test/regress'
make[1]: Leaving directory `/usr/save/postgresql-8.3.7/src'
make -C config all
make[1]: Entering directory `/usr/save/postgresql-8.3.7/config'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/usr/save/postgresql-8.3.7/config'
All of PostgreSQL successfully made. Ready to install. 

# make install
make -C test/regress install
make[2]: Entering directory `/usr/save/postgresql-8.3.7/src/test/regress'
/bin/sh ../../../config/install-sh -c  pg_regress '/usr/local/pgsql/lib/pgxs/src/test/regress/pg_regress'
make[2]: Leaving directory `/usr/save/postgresql-8.3.7/src/test/regress'
make[1]: Leaving directory `/usr/save/postgresql-8.3.7/src'
make -C config install
make[1]: Entering directory `/usr/save/postgresql-8.3.7/config'
mkdir -p -- /usr/local/pgsql/lib/pgxs/config
/bin/sh ../config/install-sh -c -m 755 ./install-sh '/usr/local/pgsql/lib/pgxs/config/install-sh'
/bin/sh ../config/install-sh -c -m 755 ./mkinstalldirs '/usr/local/pgsql/lib/pgxs/config/mkinstalldirs'
make[1]: Leaving directory `/usr/save/postgresql-8.3.7/config'
PostgreSQL installation complete.

PostgreSQL ./configure options

Ниже приведены различные параметры, которые можно передать в ./configure:

  • –Prefix = PREFIX устанавливать независимые от архитектуры файлы в PREFIX. Место установки по умолчанию /usr/local/pgsql
  • –Enable-integer-datetimes включает 64-битную целочисленную поддержку даты / времени
  • –Enable-nls [= LANGUAGES] включить поддержку родного языка
  • –Disable-shared не создавать разделяемые библиотеки
  • –Disable-rpath не встраивать путь поиска в общей библиотеке в исполняемые файлы
  • –Disable-spinlocks не используют спин-блокировки
  • –Enable-debug с отладочными символами (-g)
  • –Enable-profiling с включенным профилированием
  • –Enable-dtrace с поддержкой DTrace
  • –Enable-depend включить автоматическое отслеживание зависимостей
  • –Enable-cassert включить проверки утверждений (для отладки)
  • –Enable-thread-safety делает клиентские библиотеки поточно-ориентированными
  • –Enable-thread-safety-force force-thread-safety несмотря на провал теста нити
  • –Disable-largefile опустить поддержку больших файлов
  • –With-docdir = DIR установить документацию в DIR [PREFIX / doc]
  • –Without-docdir не устанавливать документацию
  • –With-includes = DIRS искать дополнительные файлы заголовков в DIRS
  • –With-library = DIRS искать дополнительные библиотеки в DIRS
  • –With-libs = DIRS альтернативное написание –with-library
  • –With-pgport = PORTNUM изменить номер порта по умолчанию [5432]
  • –With-tcl модули Tcl (PL / Tcl)
  • –With-tclconfig = DIR tclConfig.sh находится в DIR
  • –With-perl С Perl-сборкой модулей Perl (PL / Perl)
  • –With-python собрать модули Python (PL / Python)
  • –With-gssapi с поддержкой GSSAPI
  • –With-krb5 с поддержкой Kerberos 5
  • –With-krb-srvnam = NAME имя участника службы по умолчанию в Kerberos [postgres]
  • –With-pam  с поддержкой PAM
  • –With-ldap с поддержкой LDAP
  • –With-bonjour  с поддержкой Bonjour
  • –With-openssl с поддержкой OpenSSL
  • –Without-readline не использовать GNU Readline или BSD Libedit для редактирования
  • –With-libedit-preferred предпочтение BSD Libedit перед GNU Readline
  • –With-ossp-uuid использовать библиотеку USS USS USS при создании contrib / uuid-ossp
  • –With-libxml с поддержкой XML
  • –With-libxslt использовать поддержку XSLT при сборке contrib / xml2
  • –With-system-tzdata = DIR использовать данные о часовом поясе системы в DIR
  • –Without-zlib не использовать Zlib
  • –With-gnu-ld предполагает, что компилятор C использует GNU ld [по умолчанию = нет]

Установка PostgreSQL, проблема 1:

При выполнении ./configure во время установки postgreSQL может появиться следующее сообщение об ошибке.

# ./configure
checking for -lreadline... no
checking for -ledit... no
configure: error: readline library not found
If you have readline already installed, see config.log for details on the
failure.  It is possible the compiler isn't looking in the proper directory.
Use --without-readline to disable readline support.

Установка PostgreSQL:

Установите readline-devel и libtermcap-devel для решения вышеуказанной проблемы.

# rpm -ivh libtermcap-devel-2.0.8-46.1.i386.rpm readline-devel-5.1-1.1.i386.rpm
warning: libtermcap-devel-2.0.8-46.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...                ########################################### [100%]
   1:libtermcap-devel       ########################################### [ 50%]
   2:readline-devel         ########################################### [100%]

Шаг 3: Проверьте структуру каталогов postgreSQL

После установки убедитесь, что каталоги bin, doc, include, lib, man и share созданы в каталоге / usr / local / pgsql по умолчанию, как показано ниже.

# ls -l /usr/local/pgsql/
total 24
drwxr-xr-x 2 root root 4096 Apr  8 23:25 bin
drwxr-xr-x 3 root root 4096 Apr  8 23:25 doc
drwxr-xr-x 6 root root 4096 Apr  8 23:25 include
drwxr-xr-x 3 root root 4096 Apr  8 23:25 lib
drwxr-xr-x 4 root root 4096 Apr  8 23:25 man
drwxr-xr-x 5 root root 4096 Apr  8 23:25 share

Шаг 4: Создать учетную запись пользователя postgreSQL

# adduser postgres

# passwd postgres
Changing password for user postgres.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

Шаг 5: Создайте каталог данных postgreSQL

Создайте каталог данных postgres и сделайте пользователя postgres владельцем.

 

# mkdir /usr/local/pgsql/data

# chown postgres:postgres /usr/local/pgsql/data

# ls -ld /usr/local/pgsql/data
drwxr-xr-x 2 postgres postgres 4096 Apr  8 23:26 /usr/local/pgsql/data

Шаг 6: Инициализировать каталог данных postgreSQL

Прежде чем вы сможете начать создавать любую базу данных postgreSQL, пустой каталог данных, созданный на предыдущем шаге, должен быть инициализирован с помощью команды initdb, как показано ниже.

# su postgres

# /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/
The files belonging to this database system will be owned by user postgres
This user must also own the server process.

The database cluster will be initialized with locale en_US.UTF-8.
The default database encoding has accordingly been set to UTF8.
The default text search configuration will be set to "english".

fixing permissions on existing directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers/max_fsm_pages ... 32MB/204800
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

    /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
or
    /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

Шаг 7: Проверьте каталог данных postgreSQL

Убедитесь, что все файлы конфигурации базы данных postgres (например, postgresql.conf) созданы в каталоге данных, как показано ниже.

$ ls -l /usr/local/pgsql/data
total 64
drwx------ 5 postgres postgres  4096 Apr  8 23:29 base
drwx------ 2 postgres postgres  4096 Apr  8 23:29 global
drwx------ 2 postgres postgres  4096 Apr  8 23:29 pg_clog
-rw------- 1 postgres postgres  3429 Apr  8 23:29 pg_hba.conf
-rw------- 1 postgres postgres  1460 Apr  8 23:29 pg_ident.conf
drwx------ 4 postgres postgres  4096 Apr  8 23:29 pg_multixact
drwx------ 2 postgres postgres  4096 Apr  8 23:29 pg_subtrans
drwx------ 2 postgres postgres  4096 Apr  8 23:29 pg_tblspc
drwx------ 2 postgres postgres  4096 Apr  8 23:29 pg_twophase
-rw------- 1 postgres postgres     4 Apr  8 23:29 PG_VERSION
drwx------ 3 postgres postgres  4096 Apr  8 23:29 pg_xlog
-rw------- 1 postgres postgres 16592 Apr  8 23:29 postgresql.conf

Шаг 8: Запустите базу данных postgreSQL

Используйте команду postgres postmaster, чтобы запустить сервер postgreSQL в фоновом режиме, как показано ниже.

$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &
[1] 2222

$ cat logfile
LOG:  database system was shut down at 2009-04-08 23:29:50 PDT
LOG:  autovacuum launcher started
LOG:  database system is ready to accept connections

Шаг 9: Создайте базу данных postgreSQL и протестируйте установку

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

$ /usr/local/pgsql/bin/createdb test

$ /usr/local/pgsql/bin/psql test
Welcome to psql 8.3.7, 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

test=#
 2019-2020 © linuxadmins all rights reserved

Facebook Twitter Vkontakte