Postgresql centos: Установка и настройка PostgreSQL в CentOS

Содержание

Установка Postgresql на Centos 7

В статье рассмотрим установку и первоначальную настройку различных версий сервера PostgreSQL на ОС CentOS 7

Содержание

  1. PostgreSQL 9.2
  2. Установка
  3. Настройка
  4. PostgreSQL 11
  5. Установка
  6. Настройка

PostgreSQL 9.2

Установка

Эта версия входит в стандартные yum репозиториях. Поэтому для установки просто введите команду

yum install postgresql postgresql-server

Инициализируем базу

postgresql-setup initdb

Запускаем и добавляем в автозагрузку, заодно и проверим статус что сервер нормально запустился

systemctl enable postgresql; systemctl start postgresql; systemctl status postgresql

Если все нормально должны увидеть что postgres запущен.

Настройка

Сейчас в вашей СУБД есть только один пользователь — postgres. Рекомендуется не использовать данного пользователя для работы со своими базами данных, а создавать для каждой базы отдельного пользователя (или несколько при необходимости).
Задаем пароль на пользователя postgres

passwd postgres

Подключаемся к серверу postgres

sudo -u postgres psql

Создаем нового пользователя

create user username with password 'password';

Вместо username и password подставьте свои имя пользователя и пароль.

Файлы конфигурации находятся в каталоге /var/lib/pgsql/data, в котором находятся два основных конфигурационных файла.

  • postgresql.conf — основной файл с настройками СУБД
  • pg_hba.conf — файл с настройками доступа для клиентов. В частности, тут можно указать каким пользователям с каких IP-адресов можно подключаться к определенным БД, и требуется ли проверять пароль пользователя, и если требуется — каким методом.

Редактируем файл postgresql.conf.

Для начала разрешим подключение к СУБД из локальной сети (по умолчанию подключение разрешено только с localhost).
Раскомментируем строку

listen_addresses = ‘localhost’

исправим её на

listen_addresses = ‘localhost,10. 10.10.1’

Здесь 10.10.10.1 — ip адрес интерфейса который смотрит в локальную сеть

Теперь разрешим подключение из локальной сети с любых хостов и к любым БД, для этого в конец файла pg_hba.conf добавим:

# localnet
host  all  all  10.10.10.0/24 md5

Рестартуем postgresql

systemctl restart postgresql

PostgreSQL 11

Установка

Более свежую версию можно найти на официальном сайте по ссылке https://download.postgresql.org/pub/repos/yum/. На момент написания статьи это 11.2 версия. Добавляем репозиторий.

yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7.6-ppc64le/pgdg-centos11-11-2.noarch.rpm

Устанавливаем postgresql

yum install postgresql11-server

Инициализируем базу

/usr/pgsql-11/bin/postgresql-11-setup initdb

Запускаем сервер и проверяем что все нормально

systemctl enable postgresql-11; systemctl start postgresql-11; systemctl status postgresql-11

Настройка

Первоначальные настройки пользователей и доступа к СУБД аналогичны рассмотренным выше. Только конфигурационные файлы находятся в директории /var/lib/pgsql/11/data/. После внесения изменений не забудьте перезапустить postgres командой

systemctl restart postgresql-11

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Установка PostgreSQL в CentOS

Содержание
Введение
Установка из репозитория CentOS
Установка PostgreSQL 11
Установка самой свежей версии
Инициализация БД
Подключение к PostgreSQL
Открыть порт
Удаление PostgreSQL
Похожие статьи

Введение

В

CentOS

по умолчанию будет стоять довольно старая версия PostgreSQL.

В CentOS 7 это версия 9.2 которая уже не поддерживается.

Из этой статьи вы узнаете об установке различных версий PostgreSQL

Установка из репозитория

Установка из репозитория

CentOS

sudo yum install postgresql-server postgresql-contrib

Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
* base: ftp.funet.fi
* epel: mirrors.xtom.ee
* extras: ftp.funet.fi
* updates: ftp.funet.fi
Resolving Dependencies
—> Running transaction check
—> Package postgresql-contrib.x86_64 0:9.2.24-6.el7_9 will be installed
—> Processing Dependency: postgresql-libs(x86-64) = 9.2.24-6.el7_9 for package: postgresql-contrib-9.2.24-6.el7_9.x86_64
—> Processing Dependency: postgresql(x86-64) = 9.2.24-6.el7_9 for package: postgresql-contrib-9.2.24-6.el7_9.x86_64
—> Processing Dependency: libpq.so.5()(64bit) for package: postgresql-contrib-9.2.24-6.el7_9.x86_64
—> Processing Dependency: libossp-uuid.so.16()(64bit) for package: postgresql-contrib-9.2.24-6.el7_9.x86_64
—> Package postgresql-server.x86_64 0:9.2.24-6.el7_9 will be installed
—> Running transaction check
—> Package postgresql.x86_64 0:9.2.24-6.el7_9 will be installed
—> Package postgresql-libs.x86_64 0:9. 2.24-6.el7_9 will be installed
—> Package uuid.x86_64 0:1.6.2-26.el7 will be installed
—> Finished Dependency Resolution
Dependencies Resolved
=============================================================================================================
Package Arch Version Repository Size
=============================================================================================================
Installing:
postgresql-contrib x86_64 9.2.24-6.el7_9 updates 552 k
postgresql-server x86_64 9.2.24-6.el7_9 updates 3.8 M
Installing for dependencies:
postgresql x86_64 9.2.24-6.el7_9 updates 3.0 M
postgresql-libs x86_64 9.2.24-6.el7_9 updates 235 k
uuid x86_64 1. 6.2-26.el7 base 55 k
Transaction Summary
=============================================================================================================
Install 2 Packages (+3 Dependent packages)
Total download size: 7.7 M
Installed size: 35 M
Is this ok [y/d/N]:

y

Downloading packages:
(1/5): postgresql-contrib-9.2.24-6.el7_9.x86_64.rpm | 552 kB 00:00:00
(2/5): postgresql-libs-9.2.24-6.el7_9.x86_64.rpm | 235 kB 00:00:00
(3/5): uuid-1.6.2-26.el7.x86_64.rpm | 55 kB 00:00:00
(4/5): postgresql-9.2.24-6.el7_9.x86_64.rpm | 3.0 MB 00:00:00
(5/5): postgresql-server-9.2.24-6.el7_9.x86_64.rpm | 3.8 MB 00:00:01
————————————————————————————————————-
Total 5. 2 MB/s | 7.7 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : postgresql-libs-9.2.24-6.el7_9.x86_64 1/5
Installing : postgresql-9.2.24-6.el7_9.x86_64 2/5
Installing : uuid-1.6.2-26.el7.x86_64 3/5
Installing : postgresql-contrib-9.2.24-6.el7_9.x86_64 4/5
Installing : postgresql-server-9.2.24-6.el7_9.x86_64 5/5
Verifying : postgresql-libs-9.2.24-6.el7_9.x86_64 1/5
Verifying : postgresql-server-9.2.24-6.el7_9.x86_64 2/5
Verifying : postgresql-contrib-9.2.24-6.el7_9.x86_64 3/5
Verifying : uuid-1. 6.2-26.el7.x86_64 4/5
Verifying : postgresql-9.2.24-6.el7_9.x86_64 5/5
Installed:
postgresql-contrib.x86_64 0:9.2.24-6.el7_9 postgresql-server.x86_64 0:9.2.24-6.el7_9
Dependency Installed:
postgresql.x86_64 0:9.2.24-6.el7_9 postgresql-libs.x86_64 0:9.2.24-6.el7_9 uuid.x86_64 0:1.6.2-26.el7
Complete!

После установки проверьте версию установленного PostgreSQL

postgres -V

postgres (PostgreSQL) 9.2.24

Установка PostgreSQL 11 в CentOS 7

Выполните

yum update -y

reboot

Нужный репозиторий можно найти на сайте

yum.postgresql.org

Выполните

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

↓ Пропустить вывод ↓

Loaded plugins: fastestmirror, langpacks
pgdg-redhat-repo-latest. noarch.rpm | 7.5 kB 00:00
Examining /var/tmp/yum-root-nr5e4V/pgdg-redhat-repo-latest.noarch.rpm: pgdg-redhat-repo-42.0-18.noarch
Marking /var/tmp/yum-root-nr5e4V/pgdg-redhat-repo-latest.noarch.rpm to be installed
Resolving Dependencies
—> Running transaction check
—> Package pgdg-redhat-repo.noarch 0:42.0-18 will be installed
—> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
pgdg-redhat-repo noarch 42.0-18 /pgdg-redhat-repo-latest.noarch 11 k
Transaction Summary
================================================================================
Install 1 Package
Total size: 11 k
Installed size: 11 k
Is this ok [y/d/N]:

Выберите y

Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : pgdg-redhat-repo-42. 0-18.noarch 1/1
Verifying : pgdg-redhat-repo-42.0-18.noarch 1/1
Installed:
pgdg-redhat-repo.noarch 0:42.0-18
Complete!

Выполните

sudo yum -y install postgresql11-server postgresql11

↓ Пропустить вывод ↓

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.funet.fi
* epel: mirrors.glesys.net
* extras: ftp.funet.fi
* updates: ftp.funet.fi
pgdg-common/7/x86_64/signature | 198 B 00:00
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importing GPG key 0x442DF0F8:
Userid : «PostgreSQL RPM Building Project <[email protected]
Fingerprint: 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
Package : pgdg-redhat-repo-42.0-18.noarch (@/pgdg-redhat-repo-latest.noarch)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
pgdg-common/7/x86_64/signature | 2. 9 kB 00:00 !!!
pgdg10/7/x86_64/signature | 198 B 00:00
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importing GPG key 0x442DF0F8:
Userid : «PostgreSQL RPM Building Project <[email protected]
Fingerprint: 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
Package : pgdg-redhat-repo-42.0-18.noarch (@/pgdg-redhat-repo-latest.noarch)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
pgdg10/7/x86_64/signature | 3.6 kB 00:00 !!!
pgdg11/7/x86_64/signature | 198 B 00:00
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importing GPG key 0x442DF0F8:
Userid : «PostgreSQL RPM Building Project <[email protected]
Fingerprint: 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
Package : pgdg-redhat-repo-42.0-18.noarch (@/pgdg-redhat-repo-latest.noarch)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
pgdg11/7/x86_64/signature | 3. 6 kB 00:00 !!!
pgdg12/7/x86_64/signature | 198 B 00:00
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importing GPG key 0x442DF0F8:
Userid : «PostgreSQL RPM Building Project <[email protected]
Fingerprint: 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
Package : pgdg-redhat-repo-42.0-18.noarch (@/pgdg-redhat-repo-latest.noarch)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
pgdg12/7/x86_64/signature | 3.6 kB 00:00 !!!
pgdg13/7/x86_64/signature | 198 B 00:00
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importing GPG key 0x442DF0F8:
Userid : «PostgreSQL RPM Building Project <[email protected]
Fingerprint: 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
Package : pgdg-redhat-repo-42.0-18.noarch (@/pgdg-redhat-repo-latest.noarch)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
pgdg13/7/x86_64/signature | 3. 6 kB 00:00 !!!
pgdg96/7/x86_64/signature | 198 B 00:00
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importing GPG key 0x442DF0F8:
Userid : «PostgreSQL RPM Building Project <[email protected]
Fingerprint: 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
Package : pgdg-redhat-repo-42.0-18.noarch (@/pgdg-redhat-repo-latest.noarch)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
pgdg96/7/x86_64/signature | 3.6 kB 00:00 !!!
(1/11): pgdg11/7/x86_64/group_gz | 245 B 00:01
(2/11): pgdg10/7/x86_64/primary_db | 336 kB 00:01
(3/11): pgdg12/7/x86_64/group_gz | 245 B 00:00
(4/11): pgdg12/7/x86_64/primary_db | 215 kB 00:00
(5/11): pgdg13/7/x86_64/group_gz | 246 B 00:00
(6/11): pgdg-common/7/x86_64/primary_db | 133 kB 00:01
(7/11): pgdg96/7/x86_64/group_gz | 249 B 00:00
(8/11): pgdg10/7/x86_64/group_gz | 245 B 00:01
(9/11): pgdg13/7/x86_64/primary_db | 125 kB 00:00
(10/11): pgdg11/7/x86_64/primary_db | 358 kB 00:01
(11/11): pgdg96/7/x86_64/primary_db | 326 kB 00:00
Resolving Dependencies
—> Running transaction check
—> Package postgresql11. x86_64 0:11.13-1PGDG.rhel7 will be installed
—> Processing Dependency: postgresql11-libs(x86-64) = 11.13-1PGDG.rhel7 for package: postgresql11-11.13-1PGDG.rhel7.x86_64
—> Package postgresql11-server.x86_64 0:11.13-1PGDG.rhel7 will be installed
—> Running transaction check
—> Package postgresql11-libs.x86_64 0:11.13-1PGDG.rhel7 will be installed
—> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
postgresql11 x86_64 11.13-1PGDG.rhel7 pgdg11 1.7 M
postgresql11-server x86_64 11.13-1PGDG.rhel7 pgdg11 4.8 M
Installing for dependencies:
postgresql11-libs x86_64 11.13-1PGDG.rhel7 pgdg11 365 k
Transaction Summary
================================================================================
Install 2 Packages (+1 Dependent package)
Total download size: 6. 8 M
Installed size: 29 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/pgdg11/packages/postgresql11-libs-11.13-1PGDG.rhel7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY
Public key for postgresql11-libs-11.13-1PGDG.rhel7.x86_64.rpm is not installed
(1/3): postgresql11-libs-11.13-1PGDG.rhel7.x86_64.rpm | 365 kB 00:00
(2/3): postgresql11-server-11.13-1PGDG.rhel7.x86_64.rpm | 4.8 MB 00:01
(3/3): postgresql11-11.13-1PGDG.rhel7.x86_64.rpm | 1.7 MB 00:03
———————————————————————————
Total 2.1 MB/s | 6.8 MB 00:03
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importing GPG key 0x442DF0F8:
Userid : «PostgreSQL RPM Building Project <[email protected]
Fingerprint: 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
Package : pgdg-redhat-repo-42.0-18.noarch (@/pgdg-redhat-repo-latest.noarch)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : postgresql11-libs-11. 13-1PGDG.rhel7.x86_64 1/3
Installing : postgresql11-11.13-1PGDG.rhel7.x86_64 2/3
failed to link /usr/bin/psql -> /etc/alternatives/pgsql-psql: /usr/bin/psql exists and it is not a symlink
failed to link /usr/bin/clusterdb -> /etc/alternatives/pgsql-clusterdb: /usr/bin/clusterdb exists and it is not a symlink
failed to link /usr/bin/createdb -> /etc/alternatives/pgsql-createdb: /usr/bin/createdb exists and it is not a symlink
failed to link /usr/bin/createuser -> /etc/alternatives/pgsql-createuser: /usr/bin/createuser exists and it is not a symlink
failed to link /usr/bin/dropdb -> /etc/alternatives/pgsql-dropdb: /usr/bin/dropdb exists and it is not a symlink
failed to link /usr/bin/dropuser -> /etc/alternatives/pgsql-dropuser: /usr/bin/dropuser exists and it is not a symlink
failed to link /usr/bin/pg_basebackup -> /etc/alternatives/pgsql-pg_basebackup: /usr/bin/pg_basebackup exists and it is not a symlink
failed to link /usr/bin/pg_dump -> /etc/alternatives/pgsql-pg_dump: /usr/bin/pg_dump exists and it is not a symlink
failed to link /usr/bin/pg_dumpall -> /etc/alternatives/pgsql-pg_dumpall: /usr/bin/pg_dumpall exists and it is not a symlink
failed to link /usr/bin/pg_restore -> /etc/alternatives/pgsql-pg_restore: /usr/bin/pg_restore exists and it is not a symlink
failed to link /usr/bin/reindexdb -> /etc/alternatives/pgsql-reindexdb: /usr/bin/reindexdb exists and it is not a symlink
failed to link /usr/bin/vacuumdb -> /etc/alternatives/pgsql-vacuumdb: /usr/bin/vacuumdb exists and it is not a symlink
Installing : postgresql11-server-11. 13-1PGDG.rhel7.x86_64 3/3
Verifying : postgresql11-11.13-1PGDG.rhel7.x86_64 1/3
Verifying : postgresql11-libs-11.13-1PGDG.rhel7.x86_64 2/3
Verifying : postgresql11-server-11.13-1PGDG.rhel7.x86_64 3/3
Installed:
postgresql11.x86_64 0:11.13-1PGDG.rhel7
postgresql11-server.x86_64 0:11.13-1PGDG.rhel7
Dependency Installed:
postgresql11-libs.x86_64 0:11.13-1PGDG.rhel7
Complete!

Проверить результат установки можно выполнив

rpm -qi postgresql11-server

↓ Пропустить вывод ↓

Name : postgresql11-server
Version : 11.13
Release : 1PGDG.rhel7
Architecture: x86_64
Install Date: Fri 13 Aug 2021 11:04:05 AM EEST
Group : Unspecified
Size : 19789221
License : PostgreSQL
Signature : DSA/SHA1, Thu 12 Aug 2021 10:56:26 AM EEST, Key ID 1f16c2e1442ef0f8
Source RPM : postgresql11-11. 13-1PGDG.rhel7.src.rpm
Build Date : Thu 12 Aug 2021 10:42:27 AM EEST
Build Host : koji-centos7-x86-64-pgbuild
Relocations : (not relocatable)
Vendor : PostgreSQL Global Development Group
URL : https://www.postgresql.org/
Summary : The programs needed to create and run a PostgreSQL server
Description :
PostgreSQL is an advanced Object-Relational database management system (DBMS).
The postgresql11-server package contains the programs needed to create
and run a PostgreSQL server, which will in turn allow you to create
and maintain PostgreSQL databases.

Установка новейшей версии

Инициализация БД

Обычно после установки нужно инициализировать базу данных.

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

В моём случае это

sudo su — postgres

cd /var/lib/pgsql

После установки PostgreSQL в этой директории обычно всего две поддиректории

ls /var/lib/pgsql

backups data

Для PostgreSQL версии 9

postgresql-setup initdb

Initializing database . .. OK

Для более современных версий PostgreSQL, например 11

sudo /usr/pgsql-11/bin/postgresql-11-setup initdb

Initializing database … OK

После успешной инициализации в директории появится файл

initdb.log

ls /var/lib/pgsql

backups data initdb.log

cat initdb.log

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 /var/lib/pgsql/data … ok
creating subdirectories … ok
selecting default max_connections … 100
selecting default shared_buffers … 32MB
creating configuration files … ok
creating template1 database in /var/lib/pgsql/data/base/1 … ok
initializing pg_authid . .. ok
initializing dependencies … ok
creating system views … ok
loading system objects’ descriptions … ok
creating collations … ok
creating conversions … ok
creating dictionaries … ok
setting privileges on built-in objects … ok
creating information schema … ok
loading PL/pgSQL server-side language … ok
vacuuming database template1 … ok
copying template1 to template0 … ok
copying template1 to postgres … ok
Success. You can now start the database server using:
/usr/bin/postgres -D /var/lib/pgsql/data
or
/usr/bin/pg_ctl -D /var/lib/pgsql/data -l logfile start

Теперь сервер можно запустить командой

/usr/bin/pg_ctl -D /var/lib/pgsql/data -l logfile start

server starting

Подключение к PostgreSQL

sudo su — postgres

psql

psql (12.7 (Centos 12.7-0Centos0.20.04.1))
Type «help» for help.
postgres=#

Получить данные о подключении

\conninfo

You are connected to database «postgres» as user «postgres» via socket in «/var/run/postgresql» at port «5432».

Установка pgAdmin

Установить публичный ключ

sudo curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add

Создать файл конфигурации репозитория

sudo sh -c ‘echo «deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main» > /etc/apt/sources.list.d/pgadmin4.list && apt update’

Установить и десктопную и веб версии:

sudo apt install pgadmin4

Установить только десктопную версию

sudo apt install pgadmin4-desktop

Установить только веб версию

sudo apt install pgadmin4-web

Настроить веб сервер для веб версию

sudo /usr/pgadmin4/bin/setup-web.sh

Веб версию можно открыть в браузере

http://127.0.0.1/pgadmin4

Открыть порт

5432 — это стандартный порт, на котором слушает PostgreSQL. Полный список можно изучить в статье

«Список TCP и UDP портов»

sudo firewall-cmd —zone=public —add-port=5432/tcp —permanent

sucess

Затем нужно перезапустить firewall

sudo firewall-cmd —reload

sucess

Проверка

sudo firewall-cmd —list-ports

8443/tcp 3389/tcp 2222/tcp 5432/tcp

Удаление PostgreSQL

Удалить

sudo yum remove -y postgresql

sudo yum remove -y postgres\*

Удалить только postgresql-server но не удалять зависимости.

В CentOS 7

rpm -e —nodeps postgresql-server

Похожие статьи
PostgreSQL
Основы
Установка
postgresql.conf: Конфигурационный файл
Таблицы
Пользователи
SELECT
WHERE
bash скрипты для Postgres
Репликация master slave
Write Ahead Log
recovery.conf
pg_hba.conf
Help
Ошибки

Как установить PostgreSQL CentOS 7 + базовая настройка

ВПС

31 января 2023 г.

Эдвард С. и Игнас Р.

5 минут Чтение

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

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

В этом руководстве мы покажем вам два метода установки PostgreSQL на CentOS 7 VPS и рассмотрим базовую настройку этой СУБД.

Как работает PostgreSQL

В отличие от баз данных NoSQL, PostgreSQL хранит данные в строках, столбцах и таблицах. Для реляционных запросов PostgreSQL использует SQL, а нереляционные запросы обрабатываются с помощью JSON.

Одним из основных преимуществ PostgreSQL является его большое сообщество. Будучи открытым исходным кодом, он привлекает многих разработчиков, которые активно способствуют развитию этой СУБД. Поэтому неудивительно, что PostgreSQL предлагает такие функции, как расширенная оптимизация и типы данных, аналогичные таким компаниям, как 9. 0011 SQL Server и Oracle .

Важно! CentOS Linux 8 закончился срок службы (EOL) 31 декабря 2021 г. Хотя CentOS Linux 7 по-прежнему поддерживается, он достигнет EOL 30 июня 2024 г. Мы рекомендуем помнить об этом при выборе этого ОПЕРАЦИОННЫЕ СИСТЕМЫ. Подробнее об этом можно прочитать на официальном сайте.

Вы можете установить PostgreSQL на CentOS 7 одним из следующих двух способов:

  1. Установить из репозитория PostgreSQL
  2. Установите PostgreSQL из существующих репозиториев CentOS

Рассмотрим каждый из этих методов более подробно.

Способ 1. Установите PostgreSQL на CentOS 7 с помощью репозитория PostgreSQL

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

1. Доступ к вашему серверу

Первый шаг — получить доступ к вашему виртуальному серверу через SSH-клиент, например PuTTY.

2. Загрузите RPM репозитория PostgreSQL

Затем загрузите и установите RPM-репозиторий для PostgreSQL, выполнив следующую команду:

 sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms /EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm 

3. Установите PosgreSQL на CentOS 7

Затем установите сервер PostgreSQL 15 на свой компьютер:

 sudo yum install -y postgresql15-server 

4. Инициализировать базу данных

Затем инициализировать базу данных:

 sudo /usr/pgsql-15/bin/postgresql-15-setup initdb 

5. Запустить базу данных

После этого запустите PostgreSQL с помощью следующей команды:

 sudo systemctl start postgresql-15 

6. (Необязательно) Включить запуск PostgreSQL при перезагрузке

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

 sudo systemctl enable postgresql-15 

Способ 2.

Установите PostgreSQL на CentOS 7 с помощью репозиториев CentOS

Репозиторий CentOS 7 по умолчанию содержит PostgreSQL. Однако обратите внимание, что он может не предлагать последнюю версию. В настоящее время в репозитории размещается PostgreSQL версии 9.2.24.

1. Доступ к вашему серверу

Сначала получите доступ к вашему виртуальному частному серверу через SSH.

2. Установите PostgreSQL на CentOS 7

Затем установите PostgreSQL с помощью следующей команды:

 sudo yum install postgresql-server 

Обратите внимание, что установка может занять некоторое время.

3. Инициализировать базу данных

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

 sudo postgresql-setup initdb 

4. Запустите базу данных

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

 sudo systemctl start postgresql.service 

5. (Необязательно) Включить PostgreSQL

После завершения установки и инициализации вы можете настроить автоматический запуск PostgreSQL при каждой перезагрузке системы. Для этого используйте следующую команду:

 sudo systemctl enable postgresql.service 

Базовая настройка PostgreSQL

В этом разделе мы рассмотрим базовую настройку PostgreSQL.

Подключение к PostgreSQL

Чтобы начать использовать PostgreSQL, вам необходимо подключиться к его приглашению. Начните с переключения на postgres user:

 sudo su postgres 

Затем запустите PostgreSQL:

 psql 

Здесь можно просмотреть список всех доступных команд, набрав \h . В качестве альтернативы вы можете использовать \h , а затем команду, для которой вам нужна дополнительная информация. Чтобы выйти из всего окружения, используйте \q .

Изменить пароль пользователя

По умолчанию Linux создает нового пользователя postgres всякий раз, когда вы устанавливаете PostgreSQL. Если вы хотите изменить postgres пароль пользователя, используйте следующую команду:

 sudo passwd postgres 

Появится запрос на ввод нового пароля дважды. Затем переключитесь на приглашение PostgreSQL и завершите изменение пароля для пользователя PostgreSQL postgres :

 su - postgres 

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

 su -- shell /bin/bash postgres 

Затем выполните ту же команду:

 su - postgres 

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

 sudo -u postgres psql 

Затем, чтобы изменить пароль, используйте приведенную ниже команду. Обязательно введите новый пароль вместо NewPassw0rd :

 ALTER USER postgres PASSWORD 'NewPassw0rd'; 

Наконец, перезапустите службу PostgreSQL, чтобы включить следующие изменения:

 sudo service postgresql restart 

Создать нового пользователя

Самый простой способ создать нового пользователя — через интерактивный режим . Сначала переключитесь на пользователя postgres :

 su - postgres 

Теперь создайте нового пользователя, введя приведенную ниже команду и выбрав имя и роль пользователя:

 createuser --interactive 

Чтобы подтвердить нового пользователя, войдите в PostgreSQL:

 psql 

Здесь вы можете проверить всех активных пользователей:

 \du 

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

Поскольку теперь у вас есть пользователь, все, что осталось сделать, это создать базу данных с помощью команды createdb .

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

 sudo -u postgres createdb newrole 

Чтобы войти во вновь созданную базу данных, вам нужно сделать учетную запись пользователя Linux под тем же именем:

 sudo adduser newrole 

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

 sudo -u newrole psql 

Вы можете использовать команды \l или \list для отображения всех баз данных. Чтобы определить вашу текущую базу данных, введите \c . Если вам нужна дополнительная информация о соединениях, таких как сокет или порт, используйте \conninfo .

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

Базу данных можно удалить с помощью команды dropdb со следующим синтаксисом:

 dropdb yourdatabasename 

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

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

  • Создание таблиц
  • Удаление таблицы
  • Обновления таблицы
  • Добавление столбца
  • Опустить столбец
  • Таблица запросов
  • Изменить команды
  • Предоставление привилегий

Их синтаксис аналогичен большинству других команд управления базами данных. Например, вы можете вывести список всех таблиц с помощью команды \dt . Чтобы получить список всех ролей, выполните команду \du .

Чтобы узнать больше, мы рекомендуем вам прочитать официальную документацию PostgreSQL.

Заключение

Если вам нужна надежная СУБД, обратите внимание на PostgreSQL. Это мощная и масштабируемая система управления базами данных, которая может удовлетворить любые потребности, поскольку она предлагает бесплатные функции корпоративного уровня.

В этом руководстве мы показали вам два метода установки PostgreSQL на CentOS 7. Мы также рассмотрели базовый процесс установки PostgreSQL, от создания пользователя до удаления базы данных.

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

Узнайте больше о базах данных

Что такое СУБД: полное руководство
Как показать пользователей в MySQL
Как установить PhpMyAdmin для CentOS 7
Как установить MySQL на CentOS 7L

Эдвард — редактор контента с многолетним опытом написания статей в области ИТ, маркетинга и системного администрирования Linux. Его цель — побудить читателей создать впечатляющее присутствие в Интернете. Еще он очень любит собак, гитары и все, что связано с космосом.

Другие работы Эдварда С.

Игнас получает огромное удовольствие, помогая людям решать даже самые сложные технические вопросы. Его текущая цель — писать простые для понимания статьи, чтобы таких проблем вообще не возникало. В свободное время Игнас любит играть в видеоигры и ремонтировать вещи в своем доме.

Еще от Игнаса Р.

загрузок Linux (семейство Red Hat)

В семейство дистрибутивов Red Hat входят:

  • Red Hat Enterprise Linux
  • Рокки Линукс
  • CentOS (только 7 и 6)
  • Федора
  • Оракл Линукс

и другие.

PostgreSQL доступен на этих платформах по умолчанию. Однако,
каждая версия платформы обычно «снимает» конкретную версию
PostgreSQL, который затем поддерживается на протяжении всего срока службы этой платформы.
Поскольку это часто может означать версию, отличную от предпочтительной, PostgreSQL
проект предоставляет репозиторий пакетов всех
поддерживаемые версии для наиболее распространенных дистрибутивов.

Репозиторий PostgreSQL Yum

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

В настоящее время репозиторий PostgreSQL Yum поддерживает:

  • Red Hat Enterprise Linux
  • Рокки Линукс
  • CentOS (только 7 и 6)
  • Оракл Линукс
  • Федора *

* Примечание : из-за более короткого цикла поддержки
в Fedora не все поддерживаемые версии PostgreSQL доступны на этой платформе. Мы не рекомендуем
использование Fedora для серверных развертываний.

Чтобы использовать репозиторий PostgreSQL Yum, выполните следующие действия:

  1. Выбрать версию:
  2. Выберите платформу:
  3. Выберите архитектуру:
  4. Скопируйте, вставьте и запустите соответствующие части сценария установки:

Входит в комплект поставки

Все эти дистрибутивы включают PostgreSQL по умолчанию. Установить
PostgreSQL из этих репозиториев, используйте команду yum на RHEL 6 и 7:


yum установить postgresql-сервер

или команду dnf в RHEL 8 и Fedora:


dnf установить postgresql-сервер

Какую версию PostgreSQL вы получите, зависит от версии
распространение:

Распределение Версия
RHEL/Rocky Linux 9 13
RHEL/Rocky Linux/OL 8 13, 12, 10 и 9,6 через модули
RHEL / CentOS / SL / OL 7 9.2 (также поставляет пакеты rh-postgresql10, rh-postgresql96, rh-postgresql95 и rh-postgresql94 через SCL)
RHEL / CentOS / SL / OL 6 8.4 (также поставляется пакет rh-postgresql96 через SCL)
Федора 37 14
Федора 36 14

Другие дистрибутивы семейства Red Hat могут содержать другую версию
PostgreSQL по умолчанию, уточните у поставщика вашего дистрибутива.

Репозиторий содержит множество различных пакетов, включая сторонние
аддоны. Наиболее распространенными и важными пакетами являются (замените
номер версии по желанию):

postgresql-клиент библиотеки и клиентские двоичные файлы
postgresql-сервер основной сервер базы данных
postgresql-вклад дополнительные поставляемые модули
postgresql-devel библиотеки и заголовочные файлы для разработки на языке C

После установки

Из-за политик для дистрибутивов семейства Red Hat установка PostgreSQL
не будет включен автоматический запуск или инициализирована база данных
автоматически. Чтобы завершить установку базы данных, вам необходимо
выполните следующие шаги в зависимости от вашего дистрибутива:

Для RHEL / Rocky Linux / CentOS / SL / OL 7, 8, 9 или Fedora 36 и более поздних производных дистрибутивов:
 postgresql-настройка --initdb
systemctl включить postgresql.