Centos postgresql: Установка и настройка PostgreSQL в CentOS
Содержание
Установка PostgreSQL 13 в CentOS 8 • postgresql, centos • IT Draft
Главная » CentOS » Установка PostgreSQL 13 в CentOS 8
Автор Максим Макаров На чтение 3 мин Просмотров 5к. Опубликовано
Обновлено
PostgreSQL
PostgreSQL — свободная объектно-реляционная система управления базами данных. Обновления для этой ветки будут выходить в течение пяти лет до ноября 2025 года.
Содержание
- Установка PostgreSQL 13
- Работа с базой / польователями
- Настройка PostgreSQL 13
- Настройка Firewall
Установка PostgreSQL 13
Добавляем репозиторий PostgreSQL
$ sudo dnf -y install https://download. postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Отключаем модуль PostgreSQL в предустановленно по-умолчанию репозитории AppStream
$ sudo dnf -qy module disable postgresql
Проверяем
$ sudo dnf module list | grep postgresql postgresql 9.6 [x] client, server [d] PostgreSQL server and client module postgresql 10 [d][x] client, server [d] PostgreSQL server and client module postgresql 12 [x] client, server [d] PostgreSQL server and client module
Устанавливаем PostgreSQL 13
$ sudo dnf -y install postgresql13 postgresql13-server
Инициализируем базу
$ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb Initializing database … OK
Основной конфиг PostgreSQL расположен тут: /var/lib/pgsql/13/data/postgresql.conf
$ ls /var/lib/pgsql/13/data/ base pg_commit_ts pg_ident.conf pg_notify pg_snapshots pg_subtrans PG_VERSION postgresql.auto.conf global pg_dynshmem pg_logical pg_replslot pg_stat pg_tblspc pg_wal postgresql. conf log pg_hba.conf pg_multixact pg_serial pg_stat_tmp pg_twophase pg_xact
Запускаем PostgreSQL и добавляем сервис в автозагрузку
$ sudo systemctl enable --now postgresql-13
Проверяем статус
$ systemctl status postgresql-13
Устанавливаем пароль для пользователя postgres
$ sudo su - postgres $ psql -c "alter user postgres with password 'StrongDBPassword'" ALTER ROLE $ exit
Работа с базой / польователями
Переключаемся на пользователя postgres
$ sudo su - postgres
Создаем пользователя БД
$ createuser userdb
Переключаемся в PostgreSQL shell
$ psql
Задаем пароль для пользователя БД
=# ALTER USER userdb WITH ENCRYPTED password 'aaayoupasswdaaa';
Создам базу и задаем владельца базы
=# CREATE DATABASE mybase WITH ENCODING='UTF8' OWNER=userdb; =# \q $ exit
Настройка PostgreSQL 13
Настраиваем возможность подключения к БД из др. хоста. Для этого редактируем конфигурационный файл /var/lib/pgsql/13/data/postgresql.conf и устанавливаем в качестве параметра Listen address ip-адрес сервера, или «*» — для всех сетевых интерфейсов
$ sudo nano /var/lib/pgsql/13/data/postgresql.conf […] listen_addresses = '192.168.11.200' […]
Настраиваем параметры авторизации
$ sudo nano /var/lib/pgsql/13/data/pg_hba.conf […] # Accept from trusted subnet host all all 192.168.11.0/24 md5 […]
Перезапускаем PostgreSQL
$ sudo systemctl restart postgresql-13
Тестируем подключение
$ sudo su - postgres $ psql -U <dbuser> -h <serverip> -p 5432 <dbname>
Настройка Firewall
Открываем порт 5432
$ sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent $ sudo firewall-cmd --reload
postgresql centos
Оцените автора
Как установить сервер 1С в связке с CentOS 7 и PostgreSQL
1
Устанавливаем CentOS 7 редакции minimal.
Образ можно взять с официального сайта: www.centos.org/download/
Так как 1С работает только с русской локализацией, то необходимо сразу устанавливать систему с учётом этого. В дальнейшем все действия производятся от имени суперпользователя.
Проверка текущей локализации системы:
Для проверки доступности необходимой локали используем команду:
Для смены локали:
2
Далее настраиваем статический IP-адрес, маску подсети, шлюз по умолчанию, DNS.
Предварительно делаем бекап стандартного файла конфигурации сетевого интерфейса:
Далее конфигурируем интерфейс (адреса выставляем свои):
3
В файле /etc/hostname изменим имя хоста на более удобное: 1с-srv.
Сопоставим IP с именем хоста для удобства обращения к серверу. В файле /etc/hosts добавляем запись:
Так же необходимо это соответствие будет прописать на все клиентах, которые будут работать с сервером 1С. В операционной системе Windows это прописывается в файле: C:\Windows\System32\drivers\etc\hosts
172.17.18.236 1c-srv
Также редактируем файл /etc/sysconfig/network, прописываем имя хоста и отключим адресацию IPv6:
Отключаем использование IPv6 на уровне ядра. В файле /etc/sysctl.conf добавляем строчки:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
Сохраняем и применяем настройки:
sysctl -p
Отключаем SELinux в файле /etc/sysconfig/selinux
Выполняем команду
setenforce 0
После всех манипуляций обязательно рестарт сети: systemctl restart network и проверяем работу введенной конфигурации.
4
Следующим шагом обновляем систему и устанавливаем пакеты программ и библиотек:
yum -y update yum -y install epel-release yum -y install nano mc wget net-tools rpm-build gcc make glibc-devel bison flex python-devel tcl-devel readline-devel zlib-devel openssl-devel krb5-devel e2fsprogs-devel gettext pam-devel openldap-devel icu libicu libicu-devel
5
Скачиваем необходимые нам пакеты с 1с сервером и PostgreSQL и копируем на сервер:
6
Переходим в папку с 1с:
cd . /tmp/1c
Распаковываем наш архив:
tar -xvf rpm64_8_3_13_1865.tar.gz
Устанавливаем сервер:
yum localinstall ./*.rpm
Прописываем сервер в автозагрузку:
chkconfig srv1cv83 on
Запускаем сервер:
service srv1cv83 start
Проверяем запуск сервера:
Назначим владельцем директории /opt/1C автоматически созданного пользователя usr1cv8 и группу пользователей grp1cv8:
chown -R usr1cv8:grp1cv8 /opt/1C
Задаём пароль для usr1cv8:
passwd usr1cv8
7
Переходим в папку с пакетами PostgreSQL:
cd ./Postgresql
Распаковываем наш архивы:
tar -xvf postgresql_10.5_11.1C_x86_64_rpm.tar.bz2 tar -xvf postgresql_10.5_11.1C_x86_64_addon_rpm.tar.bz2
Устанавливаем Postgresql:
cd ./postgresql-10.5-11.1C_x86_64_rpm/ yum localinstall ./*.rpm
Устанавливаем доп. модули:
cd ./postgresql-10.5-11.1C_x86_64_addon_rpm/ yum localinstall ./*.rpm
8
Переключаемся на пользователя postgres (создаётся автоматически при сборке из исходников):
su - postgres
Далее необходимо проинициализировать служебные базы данных с русской локалью:
/usr/pgsql-10/bin/initdb -D /var/lib/pgsql/10/data --locale=ru_RU.UTF-8
Если все прошло успешно можно запускать сервер базы данных. Если нужно создать новую системную базу, то необходимо удалить папку /var/lib/pgsql/10/data.
Запускаем сервер:
/usr/pgsql-10/bin/pg_ctl -D /var/lib/pgsql/10/data -l logfile start
Заходим в базу и задаём пароль для пользователя postgres:
Проверяем локализацию и работоспособность сервера Postgres:
Обязательно редактируем файл /var/lib/pgsql/10/data/pg_hba.conf задаем в нем доступ к базам по паролю, а также передачу данных аутентификации в формате md5 хеш суммы.
Перезагружаем сервер.
9
После перезагрузки запускаем вручную Postgre и добавляем в автозагрузку:
service postgresql-10 start chkconfig postgresql-10 on
Проверяем результат:
service postgresql-10 status
netstat -tulpn | grep 5432 (по умолчанию postgres использует порт 5432)
10
Следующим шагом задаем конфигурации сервера Postgres.
Здесь нужно ориентироваться на конфигурацию 1С, количество пользователей 1С, объёмы баз, количество операций с базами. Поэтому конфигурирование большей части параметров производится, на запущенном сервере, путём подбора оптимальных показателей. Настройку выполняем путем редактирования файла /var/lib/pgsql/10/data/postgresql.conf
Частично можно ознакомится с параметрами здесь infostart.ru/public/554213/, а также на сайте postgrespro.ru/docs/.
Предварительно делаем резервную копию postgresql.conf
cp /var/lib/pgsql/10/data/postgresql. conf /var/lib/pgsql/10/data/postgresql.conf.bak
На данной стадии нас интересует параметр listen_addresses, данный параметр позволят задать адрес, список адресов, с которых будет возможно подключение, * — для любого адреса.
11
Теперь необходимо добавить шрифты и кодировки.
yum -y install xorg-x11-fonts-Type1 xorg-x11-fonts-truetype yum install -y curl cabextract xorg-x11-font-utils fontconfig rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
Устанавливаем библиотеки для иконок и картинок:
yum install ImageMagick.i686 ImageMagick libgsf.i686 unixODBC.i686 glib2.i686
При подключении 1с к серверу может выдать ошибку на отсутствие библиотеки libWand.so, поэтому создадим символическую ссылку на файл установленной библиотеки:
12
Настроим firewall на нашем сервере.
systemctl stop firewalld systemctl disable firewall yum -y install iptables-services systemctl enable iptables systemctl start iptables
Заходим в настройки iptables и приводим файл к следующему виду:
vi /etc/sysconfig/iptables
13
Переходим на машину с Windows. Устанавливаем клиент 1С и утилиты для администрирования. Запускаем администрирование 1С.
Если будет ошибка о невозможности загрузить оснастку, используем bat-файл от имени администратора, Регистрация утилиты администрирования. Найти его можно в Пуск — 1С:Предприятие:
Теперь можно добавить наш сервер.
В появившемся окне прописываем имя нашего сервера.
Если все настроено правильно, то увидим локальный кластер с нашим сервером. Создаём информационную базу.
В случае ошибки, при создании базы, идем на сервер и заходим под пользователем postgres. Далее удаляем базу: dropdb postgres.
14
Следующим шагом переходим в 1С и добавляем нашу базу:
Заходим в конфигуратор и загружаем базу Gilev для теста:
15
Следующим шагом настроим Web-публикацию:
yum -y install httpd
Редактируем /etc/httpd/conf/httpd. conf где задаем значение директиве ServerName:
ServerName=1c-srv
В корневом каталоге сайта создаем директорию test, где test — имя базы к которой мы будем предоставлять доступ.
mkdir /var/www/html/test
Теперь нам необходимо запустить специальный скрипт для публикации базы на веб-сервере:
/opt/1C/v8.3/x86_64/webinst -apache24 -wsdir test -dir '/var/www/html/test' -connStr 'Srvr="1c-srv";Ref="test";' -confPath /etc/httpd/conf/httpd.conf
Выдаем права на директорию:
chown -R apache:apache /var/www/html/test
Запускаем Apache и добавляем в автозагрузку:
systemctl enable httpd systemctl start httpd
Теперь проверяем по адресу 1c-srv/test
16
Заключительным этапом настроим резервное копирование базы данных и обслуживание.
Первым делом установим архиватор pigz, поскольку он, в отличии от gzip, хорошо загружает все ядра процессора, что в свою очередь повышает производительность и скорость выполнения архивации.
yum -y install pigz
Монтирование диска:
Создадим папку для монтирования диска для бекапов и монтируем его:
mkdir /mnt/buckup mount /dev/sdb1 /mnt/buckup/
Для автоматического монтирования прописываем диск в файл fstab:
vi /etc/fstab /dev/sdb1 /mnt/buckup ext4 defaults 0 0
Создаем директории, в которых будут находиться наши бекапы (Day, Week, Month…) и назначим владельцем postgres:
mkdir /mnt/buckup/Day /mnt/buckup/Week /mnt/buckup/Month chown -R postgres:postgres /mnt/buckup
Создаем папки для записи лог файлов:
mkdir /var/log/postgresql/ /var/log/postgresql/Day /var/log/postgresql/Week /var/log/postgresql/Month chown -R postgres:postgres /var/log/postgresql/
Далее создаем скрипт buckup.sh для резервного копирования и обслуживания базы:
#!/bin/sh #Установим период, по истечению которого удалятся старые бекапы days=$2 #Установим тип резервного копирования type=$1 # Устанавливаем дату DATA=`date +"%Y-%m-%d_%H-%M"` # Записываем информацию в лог с секундами echo “----------------------------$DATA---------------------------------------” >> /var/log/postgresql/$type/backup. log echo "`date +"%Y-%m-%d_%H-%M-%S"` Start backup postgres" >> /var/log/postgresql/$type/backup.log # Бэкапим базу данных postgres и сразу сжимаем /usr/bin/pg_dump -U postgres postgres | pigz > /mnt/buckup/$type/$DATA-postgres.sql.gz echo "`date +"%Y-%m-%d_%H-%M-%S"` End backup postgres" >> /var/log/postgresql/$type/backup.log echo “------------------------------------------------------------------------” >> /var/log/postgresql/$type/backup.log # Удаляем в папке с бэкапами старые архивы /usr/bin/find /mnt/buckup/$type -type f -mtime +$days -exec rm -rf {} \; sleep 2 #Очистка и анализ базы echo “----------------------------$DATA---------------------------------------” >> /var/log/postgresql/$type/service.log # Записываем информацию в лог с секундами echo "`date +"%Y-%m-%d_%H-%M-%S"` Start vacuumdb postgres" >> /var/log/postgresql/$type/service.log vacuumdb --verbose --analyze --full --quiet --dbname=postgres echo "`date +"%Y-%m-%d_%H-%M-%S"` End vacuumdb postgres" >> /var/log/postgresql/$type/service. log echo “------------------------------------------------------------------------” >> /var/log/postgresql/$type/service.log #Перестроение индекса sleep 2 echo "`date +"%Y-%m-%d_%H-%M-%S"` Start reindex postgres" >> /var/log/postgresql/$type/service.log /usr/bin/reindexdb --username postgres --dbname postgres echo "`date +"%Y-%m-%d_%H-%M-%S"` End reindex postgres" >> /var/log/postgresql/$type/service.log echo “------------------------------------------------------------------------” >> /var/log/postgresql/$type/service.log
Сохраняем скрипт и кладем его в папку /var/log/postgresql/buckup.sh
Добавляем привилегии на запуск:
chmod +x /var/log/postgresql/buckup.sh
Заходим от имени пользователя postgres и добавляем скрип в /etc/crontab
su – postgres crontab -e
Документация по временной шкале
| Установите TimescaleDB в Red Hat и CentOS
Версии:
Вы можете самостоятельно разместить TimescaleDB в своей системе Red Hat, CentOS или Fedora.
В этих инструкциях используется менеджер пакетов yum
на этих
дистрибутивы:
- Red Hat Enterprise Linux 7
- Red Hat Enterprise Linux 8
- Red Hat Enterprise Linux 9
- CentOS 7
- CentOS 8
- Rocky Linux 8
90 Rocky0 Linux0009 Fedora 33
- Fedora 34
- Fedora 35
предупреждение
Если вы уже установили PostgreSQL с помощью метода, отличного от yum
или dnf
, вы можете столкнуться с ошибками, следуя этим инструкциям. Прежде чем начать, безопаснее удалить все существующие установки PostgreSQL. Если вы хотите сохранить текущую установку PostgreSQL, не устанавливайте TimescaleDB с помощью этого метода. Вместо этого установите из исходного кода.
Установка самостоятельно размещенной TimescaleDB в системах на основе Red Hat
В командной строке от имени пользователя root добавьте сторонний репозиторий PostgreSQL
Чтобы получить последние пакеты PostgreSQL:Создание репозитория TimeScale:
Обновление своего локального списка репозиторий:
YUM Обновление
TimeScaledB:
-
TimeScaledB:
yum
-
Установка. 14
При установке на CentOS 8 или Red Hat Enterprise Linux 8 необходимо отключить встроенный в систему модуль PostgreSQL с помощью
модуль sudo dnf -qy отключить команду postgresql
. Инициализировать базу данных:
/usr/pgsql-14/bin/postgresql-14-setup initdb
После завершения установки вам необходимо настроить базу данных так, чтобы
что вы можете использовать его. Самый простой способ сделать это — запустить timescaledb-tune
.
скрипт, входящий в состав пакета timescaledb-tools . Запустите
скрипт timescaledb-tune
с использованием
команда sudo timescaledb-tune --pg-config=/usr/pgsql-14/bin/pg_config
. Для большего
информацию см. в разделе конфигурации.
Настройка расширения TimescaleDB
Если у вас установлены PostgreSQL и TimescaleDB, вы можете подключиться к ним с помощью
утилита командной строки psql
.
Установите psql в CentOS
Вы можете использовать диспетчер пакетов yum
в системах CentOS для установки
инструмент psql
.
Установка psql с помощью диспетчера пакетов apt
- Убедитесь, что ваш репозиторий
APT
был актуален:YUM Обновление
- Установите
Postgresql-Client
Установка DNF PostGRESQL14
- 77777778888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888н.
Включить и запустить службу:
systemctl enable postgresql-14
systemctl start postgresql-14
Подключиться к экземпляру PostgreSQL как
postgres
суперпользователь:-u postgres psql
Если ваше соединение успешно, вы увидите сообщение, подобное этому, за которым следует
по подсказкеpsql
:не удалось изменить каталог на «/ root»: разрешение отклонено
psql (14. 5)
Введите «помощь» для получения справки.
postgres=#
Установите пароль для пользователя
postgres
, используя:\password postgres
Выйдите из PostgreSQL с помощью команды
\q
.Использовать клиент
psql
для подключения к PostgreSQL:psql -U postgres -h localhost
По запросу
psql
создайте пустую базу данных. Наша база данных
называетсяtsdb
:СОЗДАТЬ базу данных tsdb;
Подключитесь к созданной вами базе данных:
\c tsdb
Добавьте расширение TimescaleDB:
СОЗДАЙТЕ РАСШИРЕНИЕ, ЕСЛИ НЕ СУЩЕСТВУЕТ timescaledb;
Убедитесь, что расширение TimescaleDB установлено с помощью
\dx
в командной строкеpsql
. Вывод аналогичен:tsdb-# \dx
Список установленных расширений
Имя | Версия | Схема | Описание
-------------+---------+------------+----------- -------------------------------------------------- ------
plpgsql | 1.0 | pg_каталог | Процедурный язык PL/pgSQL
timescaledb | 2.7.0 | общественный | Включает масштабируемые вставки и сложные запросы для данных временных рядов
(2 строки)
После создания расширения и базы данных вы можете подключиться к
база данных напрямую с помощью этой команды:
psql -U postgres -h localhost -d tsdb
Куда дальше
Теперь, когда ваша первая база данных TimescaleDB запущена и работает, вы можете проверить
раздел TimescaleDB в нашей документации и узнайте, что
вы можете сделать с этим.
Если вы хотите ознакомиться с некоторыми учебными пособиями, которые помогут вам начать работу с
TimescaleDB и данные временных рядов, ознакомьтесь с нашим разделом руководств.
Вы всегда можете связаться с нами, если вам нужна помощь в решении какой-либо проблемы, или
если вы хотите поболтать.
Нашли проблему на этой странице?
Сообщить о проблеме!
Keywords
installself-hostedRed Hat
PreviousDebian/UbuntuNextArch Linux
Related Content
Install self-hosted TimescaleDB
Install a self-hosted, self-managed instance of TimescaleDB
Install TimescaleDB from Docker container
Install самостоятельный TimescaleDB из предварительно созданного контейнера Docker
Установить TimescaleDB на Kubernetes
Установить TimescaleDB на собственном хостинге в Kubernetes
Установить TimescaleDB из облачного образа
Установить TimescaleDB на собственном хостинге из предварительно созданного облачного образа Debian и Ubuntu
Установка собственной базы данных TimescaleDB в системах на основе Debian
Bloonix: OpenSource Monitoring
Сначала установите репозиторий EPEL
sudo yum install epel-release
Установить репозиторий Bloonix
sudo rpm -ivh https://download. bloonix.de/repos/centos/7/noarch/bloonix-release-0.7-1.noarch.rpm
Установите репозиторий Elasticsearch
sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch sudo vim /etc/yum.repos.d/elasticsearch.repo
Вставка:
[elasticsearch-2.x] name=Репозиторий Elasticsearch для пакетов 2.x baseurl=https://packages.elastic.co/elasticsearch/2.x/centos gpgcheck=1 gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch включено=1
Из соображений безопасности параметр network.bind_host следует изменить в /etc/elasticsearch/elasticsearch.yml , чтобы Elasticsearch не прослушивал все IP-адреса. Пример:
network.bind_host: 127.0.0.1
Установка пакета
sudo yum install \ нгинкс \ postgresql-сервер \ эластичный поиск \ java-1.7.0-openjdk \ bloonix-webgui \ bloonix-сервер \ bloonix-агент \ bloonix-плагины-базовые \ bloonix-плагины-linux
Кроме того, пожалуйста, установите MTA, например, Postfix, Exim или Sendmail.
Init PostgreSQL
sudo postgresql-setup initdb
Настроить PostgreSQL
Отредактировать /var/lib/pgsql/data/postgresql.conf и настроить PostgreSQL для прослушивания на локальном хосте:
/sql/vipm/sudo /data/postgresql.conf
Установите следующий параметр:
listen_addresses = 'localhost'
или выполните следующую команду:
9#listen_addresses /listen_addresses/’ /var/lib/pgsql/data/postgresql.conf
Отредактируйте /var/lib/pgsql/data/pg_hba.conf и настройте PostgreSQL для подключения с помощью имени пользователя и пароля:
sudo vim /var/lib/pgsql/data/pg_hba.conf
Замените следующие строки:
host all all 127.0.0.1/32 identхост все все ::1/128 идентификаторхост все все 127.0.0.1/32 md5 хост все все ::1/128 md5
или выполните следующие команды:
sudo sed -i 's/\(host *all *all *127.0.0.1\/32 *\)ident/\1md5/' /var/lib/pgsql/data/pg_hba . conf sudo sed -i 's/\(host *all *all *::1\/128 *\)ident/\1md5/' /var/lib/pgsql/data/pg_hba.conf
Перезапустите PostgreSQL
sudo systemctl перезапустите postgresql.service
Nginx
Создайте файл конфигурации /etc/nginx/conf.d/001_bloonix.conf со следующим содержимым:
include /etc/bloonix/webgui/nginx.conf;
или просто выполните следующую команду:
sudo bash -c 'echo "include /etc/bloonix/webgui/nginx.conf;" >/etc/nginx/conf.d/001_bloonix.conf'
Запустить Elasticsearch и Nginx
sudo systemctl запустить elasticsearch.service sudo systemctl start nginx.service
Шаблон Init Bloonix для Elasticsearch
sudo /srv/bloonix/webgui/schema/init-elasticsearch localhost:9200
Схема Init Bloonix для PostgreSQL
/schema/webix/bloon/srv база данных инициализации --postgres
Метаданные плагина
После успешной инициализации и запуска базы данных вы можете установить пакет bloonix__plugin_config , который импортирует метаданные плагина в базу данных:
sudo yum install bloonix-plugin-config
Настроить агент
Отредактируйте конфигурацию агента Bloonix и настройте раздел server :
sudo vim /etc/bloonix/agent/main.