Установка PostgreSQL в CentOS 7. Centos 7 postgresql install
Установка PostgreSQL CentOS 7 | Losst
Postgresql - это объектно-реляционная база данных с высокой степенью масштабируемости и SQL совместимым синтаксисом и открытым исходным кодом. Она разрабатывается в калифорнийском университете Беркли. В последнее время PostgreSQL, благодаря своим преимуществам набирает большую популярность наряду с везде используемой mysql.
Вы можете узнать чем отличаются mysql и postgresql в отдельной статье, а сегодня мы рассмотрим как установить Postgresql CentOS 7, а также как выполнить минимальную настройку базы данных для подготовки ее к использованию.
Содержание статьи:
Установка Postgresql CentOS
Самый первый шаг заключается в установке программы в вашу систему. Как я уже говорил, база данных довольно популярна, поэтому она есть в официальных репозиториях. Но если вы хотите получить самую свежую версию, то нужно добавить официальный репозиторий:
sudo rpm -Uvh http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
В CentOS 6 команда будет выглядеть вот так:
sudo rpm -Uvh http://yum.postgresql.org/9.5/redhat/rhel-6-x86_64/pgdg-redhat95-9.5-2.noarch.rpm
После того как репозиторий будет добавлен к вашей системе вы можете перейти к установке программы. На данный момент последняя версия Postgresql 9.6. Именно для нее мы добавили репозиторий. Возможно, для более новых версий вам придется посетить сайт и посмотреть не появилась ли новая версия. Установка Postgresql CentOS 7 версии 9.6 выполняется командой:
sudo yum install postgresql96-server postgresql96
Сразу после установки Postgresql сервер еще не готов к использованию, нужно инициализировать необходимые базы данных. Для этого выполните:
/usr/pgsql-9.6/bin/postgresql96-setup initdb
Команде потребуется некоторое время для начальной инициализации. После ее завершения в переменной PGDATA будет сохранен путь к папке с базами данных. В моем случае это /var/lib/pgsql/9.5/data/.
Дальше запускаем сервер баз данных и добавляем его в автозагрузку:
sudo systemctl start postgresql-9.6$ sudo systemctl enable postgresql-9.6
Настройка Postgresql CentOS 7
Теперь сервер баз данных Postgresql установлен и запущен. Нам осталось проверить как все работает, настроить пользователей и свою первую базу данных. Настройка Postgresql CentOS 7 изначально выполняется только от пользователя postgres поэтому переключаемся на этого пользователя с помощью команды su:
sudo su - postgres
Команда выполняется от имени администратора, потому что иначе у вас спросят пароль, а вы его не знаете. Для доступа к консоли Postgresql будем применять команду psql:
psql
Смотрим информацию о подключении:
\conninfo
Первое что здесь можно сделать, это создать пароль для postgres:
\password postgres
Дальше закройте оболочку командой:
\quit
createuser --interactive
Дальше нужно ввести имя роли и ответить на несколько вопросов, а также повторить процедуру задания пароля как для postgres. Чтобы вы могли использовать postgresql через терминал от имени этого пользователя добавьте пользователя UNIX:
sudo adduser user
Нам осталось только создать новую базу данных:
createdb test1
Теперь у вас есть все необходимое для полноценной работы с программой.
Установка Phppgadmin CentOS 7
Не очень удобно работать с консольным интерфейсом управления базами данных. Иногда нужно просто и быстро добавить базу данных или создать пользователя. Для этого можно использовать веб-интерфейс phppgadmin. Для установки программы выполните:
sudo yum install phpPgAdmin
Также нужно, чтобы на вашей машине был установлен и запущен веб-сервер Apache. Чтобы перезапустить Apache выполните:
sudo systemctl restart httpd
После завершения установки вы сможете открыть адрес phpPgAdmin в браузере. Только обратите внимание на регистр букв, его нужно сохранять как при установке пакета, так и в браузере:
http://localhost/phpPgAdmin
Выводы
В этой статье мы рассмотрели как выполняется установка Postgresql CentOS 7. Как видите, здесь нет ничего очень сложного. Postgresql имеет некоторые особенности, например, авторизация пользователя в системе для управления базой данных. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение видео о про преимущества Postgresql:
Оцените статью:
Загрузка...losst.ru
Установка PostgreSQL на CentOS 7
Хаутушка по установке PostgreSQL, PgAgent и расширений на CentOS 7
Установка PostgreSQL
В первую очередь надо исключить Postgre из стандартных репов, вставив в файл /etc/yum.repos.d/CentOS-Base.repo в секции [base] и [updates] строку:
Затем подключить реп от разработчиков постгре и установить его менеджером пакетов:
yum localinstall http://yum.postgresql.org/9.3/redhat/rhel-7-x86_64/pgdg-centos93-9.3-1.noarch.rpm yum install postgresql93-serverИнициализировать базу:
/usr/pgsql-9.3/bin/postgresql93-setup initdbВключить автозапуск демона при старте системы и запустить его:
systemctl enable postgresql-9.3.service systemctl start postgresql-9.3.serviceПодключиться к базе, сменить пароль пользователя postgres и выйти:
sudo -u postgres psql alter user postgres password 'NEWPASS'; \qPostgreSQL установлен, но доступен только локальным приложениям. Для включения коннекта по сети необходимо раскомментировать строку и изменить значение параметра listen_addresses в файле /var/lib/pgsql/9.3/data/postgresql.conf с 'localhost' на '*'. И в файле /var/lib/pgsql/9.3/data/pg_hba.conf изменить параметр IPv4 local connections:
nano /var/lib/pgsql/9.3/data/postgresql.conf listen_addresses = '*' nano /var/lib/pgsql/9.3/data/pg_hba.conf host all all 0.0.0.0/0 md5Перезапустить демон:
systemctl restart postgresql-9.3.serviceУбедиться, что Postgre слушает все доступные адреса:
netstat -plan | grep 5432 tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 28632/postgres tcp6 0 0 :::5432 :::* LISTEN 28632/postgres unix 2 [ ACC ] STREAM LISTENING 53534 28632/postgres /tmp/.s.PGSQL.5432Теперь Postgre слушает все интерфейсы, но подключиться все-равно невозможно из-за политик фаервола. Требуется добавить правило, разрешающее подключение по указанному порту. Перед закрытием тега zone вставить строку:
nano /etc/firewalld/zones/public.xml <service name="postgresql"/>И перезапустить фаервол:
systemctl restart firewalld.servicePostgreSQL установлен, работает и доступен для подключений по сети.
Установка pgAgent (тут все гораздо веселее:)
Установить и разрешить pgAgent:
yum install pgagent_93 systemctl enable pgagent_93.serviceЗапустить sql скрипт создания таблиц и других объектов в схеме для pgagent и запустить демон:
sudo -u postgres psql -f /usr/share/pgagent_93-3.4.0/pgagent.sql postgres systemctl start pgagent_93.service Job for pgagent_93.service failed. See 'systemctl status pgagent_93.service' and 'journalctl -xn' for details.Смотрим service файл пгагента /etc/systemd/system/multi-user.target.wants/pgagent_93.service и видим, что демон должен стартовать от пользователя pgagent, которого в системе не оказалось. Добавить нужного пользователя и попытаться снова запустить сервис:
useradd -s /bin/false -r -M pgagent systemctl start pgagent_93.service systemctl status pgagent_93.service pgagent_93.service - PgAgent for PostgreSQL 9.3 Loaded: loaded (/usr/lib/systemd/system/pgagent_93.service; enabled) Active: active (running) since Сб 2014-11-22 01:45:48 NOVT; 1min 10s ago Process: 23629 ExecStart=/usr/bin/pgagent_93 -s ${LOGFILE} hostaddr=${DBHOST} dbname=${DBNAME} user=${DBUSER} port=${DBPORT} (code=exited, status=0/SUCCESS) Main PID: 23630 (pgagent_93) CGroup: /system.slice/pgagent_93.service └─23630 /usr/bin/pgagent_93 -s /var/log/pgagent_93.log hostaddr=127.0.0.1 dbname=postgres user=postgres port=5432 pgagent_93[23629]: Can not open the logfile!01:46:58: Error: can't open file '/var/log/pgagent_93.log' (error 13: Permission denied)Нда…Эти каракули значат «Пользователь postgres не прошел проверку подлинности» и в следствии этого пгагент не может приконнектиться к базе. В английской локализации системы ошибка выглядит так:
FATAL: Ident authentication failed for user "postgres"Проверяю запуск PgAgent из консоли с рекомендованным коннекшн стрингом и максимальным уровнем логирования:
/usr/bin/pgagent_93 -l 2 hostaddr=127.0.0.1 dbname=postgres user=postgres port=5432 DEBUG: Creating primary connection [root@localhost ~]# DEBUG: Connection Information: DEBUG: user : postgres DEBUG: port : 5432 DEBUG: host : 127.0.0.1 DEBUG: dbname : postgres DEBUG: password : DEBUG: conn timeout : 0 DEBUG: Connection Information: DEBUG: user : postgres DEBUG: port : 5432 DEBUG: host : 127.0.0.1 DEBUG: dbname : postgres DEBUG: password : DEBUG: conn timeout : 0 DEBUG: Creating DB connection: user=postgres port=5432 hostaddr=127.0.0.1 dbname=postgres WARNING: Couldn't create the primary connection (attempt 1): fe_sendauth: no password supplied DEBUG: Clearing all connections DEBUG: Connection stats: total - 1, free - 0, deleted - 1Есть контакт, отлично. Теперь надо сервису pgagent указать пароль для авторизации путем правки service файла:
nano /etc/systemd/system/multi-user.target.wants/pgagent_93.service ... # Location of database directory Environment=DBNAME=postgres Environment=DBUSER=postgres Environment=DBHOST=127.0.0.1 Environment=DBPORT=5432 Environment=PASS=NEWPASS Environment=LOGFILE=/var/log/pgagent_93.log ... ExecStart=/usr/bin/pgagent_93 -s ${LOGFILE} hostaddr=${DBHOST} dbname=${DBNAME} user=${DBUSER} port=${DBPORT} password=${PASS} ExecStop=/usr/bin/kill -TERM /usr/bin/pgagent_93 ...Перечитать конфиг service файла и перезапустить демон:
systemctl daemon-reload systemctl restart pgagent_93.service systemctl status pgagent_93.service pgagent_93.service - PgAgent for PostgreSQL 9.3 Loaded: loaded (/usr/lib/systemd/system/pgagent_93.service; enabled) Active: active (running) since Пт 2014-11-21 20:12:12 EST; 1min 38s ago Process: 19550 ExecStop=/usr/bin/kill -TERM /usr/bin/pgagent_93 (code=exited, status=1/FAILURE) Process: 19571 ExecStart=/usr/bin/pgagent_93 -s ${LOGFILE} hostaddr=${DBHOST} dbname=${DBNAME} user=${DBUSER} port=${DBPORT} password=${PASS} (code=exited, status=0/SUCCESS) Main PID: 19572 (pgagent_93) CGroup: /system.slice/pgagent_93.service └─19572 /usr/bin/pgagent_93 -s /var/log/pgagent_93.log hostaddr=127.0.0.1 dbname=postgres user=postgres port=5432 password=NEWPASS ноя 21 20:12:12 localhost.localdomain systemd[1]: Starting PgAgent for PostgreSQL 9.3... ноя 21 20:12:12 localhost.localdomain systemd[1]: Started PgAgent for PostgreSQL 9.3.Запустился и приконнектился к базе, но смущает этот FAILURE от ExecStop. После удаления этой записи все заработало как надо.Если все-таки не стартует — посмотреть есть ли значение md5 в /var/lib/pgsql/9.3/data/pg_hba.conf
Подключение экстеншенсов
При подключении расширения возникает такая ошибка:
sudo -u postgres psql CREATE EXTENSION postgres_fdw; ОШИБКА: не удалось открыть управляющий файл расширения "/usr/pgsql-9.3/share/extension/postgres_fdw.control": Нет такого файла или каталогаВозникает из-за того, что экстеншенсы не установлены и надо просто сделать это:
yum install postgresql-contribПовторная установка проходит нормально:
sudo -u postgres psql CREATE EXTENSION postgres_fdw; CREATE EXTENSIONНа этом установка окончена.
notessysadmin.com
Установка PostgreSQL в CentOS 7
PostgreSQL, лично по моему мнению, не так популярна, как MySQL/MariaDB, но есть мнение, что более надёжна и масштабируема. Тем не менее, есть ПО, которое требует именно PostgreSQL, поэтому, как обычно, администратору вбирать не приходится =) Давай-те ставить.
Самая новая версия из доступных в моём "стандартном" наборе репозиториев - 9.2.7 из epel. Но... "маловато, говорю! Маловато будет!" (с)
Идём на http://yum.postgresql.org/repopackages.php, где, конечно же, сможем найти самую последнюю версию.На момент написания статьи это 9.4.0. Устанавливаем репу:yum install http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpmТеперь устанавливаем сам PostgreSQL. Обратите внимания, что в названии пакета фигурируют цифры версии, которые, будут меняться при мажорных обновлениях (9.5, 9.6 и т.д.):yum install postgresql94-serverСразу включим его в автозагрузкуsystemctl enable postgresql-9.4Далее мы должны инициализировать кластер БД. Для тех, кому важно понимать - прошу под спойлер, нашёл очень хорошее описание на сайте postgresql-lab.blogspot.ru.
Spoiler: Highlight to view
Кластер БД - это набор баз данных, который управляется одним экземпляром запущенного сервера БД. После инициализации, кластер БД будет содержать БД с именем postgres, которая является БД по умолчанию, которую используют утилиты, пользователи и сторонние приложения. Сам сервер БД не нуждается в этой БД, но многие внешние приложения подразумевают, что она существует. Другая БД, создаваемая на этапе инициализации, называется template1. Как и следует из её имени, она будет использоваться как шаблон для создаваемых БД; она не должна использоваться для работы.
Сама команда:/usr/pgsql-9.4/bin/postgresql94-setup initdb После этого запускаем СУБД:systemctl start postgresql-9.4Теперь нам необходимо включить авторизацию и создать пользователей, так как по умолчанию подключение локально разрешено для любого авторизированного в системе пользователя. Для этого заходим в систему под пользователем postgres и запускаем консоль управления СУБД:
Пользователь "postgres" является root'ом в СУБД. Поэтому начнём с того, что создадим для него пароль:ALTER ROLE postgres WITH PASSWORD 'your_super_password';Теперь возвращаемся в консоль и обратно в root'а, дважды нажав сочетание клавиш "ctrl+d".Пора внести изменения в схему авторизации СУБД. Для этого нам потребуется отредактировать файл, расположенный по адресу /var/lib/pgsql/9.4/data/pg_hba.conf. Как обычно любым текстовым редактором:nano /var/lib/pgsql/9.4/data/pg_hba.confВ конце файла видим подобные строки:
local all all peer host all all 127.0.0.1/32 ident host all all ::1/128 identЭто как раз и есть разрешение с localhost заходить без авторизации. Меняем это наПриводим всё к виду:
local all all md5 host all all 127.0.0.1/32 md5Да, подключение по IPv6 мы убрали. Считаете, что нужно? Оставляйте.Первая строка разрешает подключение к СУБД для всех локальных пользователей, но при этом требует с них ввод пароля. Вторая делает практически то же самое, но мы эту строку оставим для того, чтобы подключаться к СУБД могли даже те пользователи, у кого нет системной учетной записи, а есть только роль в СУБД.Ещё один момент. Если Вам нужно удаленное подключение, думаю, понятно, что необходимо действовать по аналогии и добавить строку:host all all 123.456.678.910/24 md5Дополнительно = необходимо будет указать СУБД прослушивать требуемые адреса. Делается это в файле конфигурации postgresql.conf. Находим строку:#listen_addresses = 'localhost'и приводим к виду:listen_addresses = '*'Это заставит СУБД слушать все сетевые интерфейсы в поисках входящих подключений.Теперь перезапускаем службу:systemctl restart postgresql-9.4
Пробуем подключиться от имени пользователя postgres:psql -U postgresКстати, для удобства, чтобы не вводить пароль, но и не светить его в консоли, можно в домашней директории создать файл (он будет с права на чтение только для Вас), в котором записать пароль к СУБД:nano ~/.pgpassИ добавляем в него имя пользователя и пароль вида:localhost:*:*:postgres:your_super_passwordТеперь выставим права:chmod 600 /root/.pgpassЗаходить всё равно придётся с указанием имени пользователя "postgres", но пароль больше вводить не нужно.Если Вы пытаетесь зайти под другим пользователем, необходимо так же указывать базу данных, к которой Вы хотите подключиться, иначе PostgreSQL попытается подключиться к БД с тем же названием, что и имя пользователя, не найдет ее и выдаст сообщение об ошибке.
Дополнение №1: Не верная кодировка СУБД
Spoiler: Highlight to view
Столкнулся с тем, что СУБД ставится с кодировкой Encoding="SQL_ASCII", Collate="C", Ctype="С". Чтобы это исправить, убейте СУБД (не забыв про бекап БД, если они уже созданы и нужны) и поставьте пакет заново: yum remove postgresql94-server rm -rf /var/lib/pgsql/ yum install postgresql94-serverДалее нужно зайти под пользователя postgressu - postgresИ выполнить инициализацию указав соответствующие кодировки:/usr/pgsql-9.4/bin/initdb --encoding UTF-8 --lc-collate='ru_RU.UTF-8' --lc-ctype='ru_RU.UTF-8' -D /var/lib/pgsql/9.4/data/
Теперь можно запускать СУБД и добавлять её в автозагрузку.
Теперь полезные команды в консоли управления СУБД:
- Создать пользователя с разрешением на вход в СУБДCREATE ROLE username WITH PASSWORD 'user_password' LOGIN;
- Изменить пароль пользователя\password username;
- Создание новой БД с присвоением владельцаCREATE DATABASE databasename WITH OWNER username;
- Сменить владельца БДALTER DATABASE name OWNER TO new_username;
- Дать права доступа на БД для пользователяGRANT ALL ON DATABASE databasename TO username;
- Переименовать БДALTER DATABASE name RENAME TO new_databasename ;
- Посмотреть список БД\list или просто \l
- Подключиться к БД\c databasenameи вывести список таблиц\dt
- Посмотреть список запросов к БДselect * from pg_stat_activity where datname='YourDatabase';
- Удалить процесс по pidselect pg_terminate_backend(pid) from pg_stat_activity where datname='YourDatabase';
- Сделать дамп БДpg_dump -U postgres database > dump_file.sql
- Залить дамп БДpsgl -U postgres database < dump_file.sql
- Соотвественно работает связкаpg_dump -U postgres database | psql -U postgres database2
- Сбросить все соединения к базе, удалить базу, создать базуselect pg_terminate_backend(pid) from pg_stat_activity where datname = 'db_name'; drop database db_name; create database db_name;
alexxkn.ru
Centos 7 install postgresql | Users Wiki
PostgreSQL (pronounced ‘post-gres-Q-L’) is a free, open-source object-relational database management system (object-RDBMS), similar to MySQL, and is standa.
2017 , PostgreSQL , 0 Install and Use PostgreSQL PostgreSQL is a powerful object-. This tutorial will cover how. Learn how to install and use Prometheus to monitor web services on a 1&1 Cloud Server. Install and Use Sphinx Documentation Generator on CentOS 7 Sphinx is a powerful, free.
PostgreSQL is a powerful, open-source object-relational databasesystem. It runs under all major operating systems, including Linux, UNIX (AIX, .
This projects uses Django, Python, JavaScript, and PostgreSQL database. How To Install Openswan And Create. A demonstrative article to setup acronis backup and recovery modules on Linux CentOS 7. How To Install And Setup Tripwire IDS On CentOS 7.
Postgresql – это объектно-реляционная база данных с высокой степенью масштабируемости и SQL совместимым синтаксисом и .
Service” and “journalctl -xe” for details “, you need to set Selinux roles using the audit2allow command:. Service failed because a configured resource limit was exceeded. Note: If you have issues starting the zabbix-server daemon and the zabbix-agent daemon and you got this error “Job for zabbix-server. See “systemctl status zabbix-server.
PostgreSQL is an object-relational database management system (ORDBMS) available for many platforms including Linux, FreeBSD.
The PostgreSQL relational database is a powerful open source databaseplatform. Learn how to install it on CentOS 7 in this simple tutorial.
After that, you’ll have:. With a text editor, edit /etc/php/7. Configure Nginx to use php-fpm. Uncomment line 760, and change from 1 to 0, so you’ll have: cgi. There, uncomment lines 51, 52, 57, 58. Fix_pathinfo=0Next, modify Nginx virtual host configuration for enabling php-fpm; the file is /etc/nginx/sites-available/default.
In this example, we’ll modify the examplerole user so that it can create new databases. The commands in this section should be run as the postgres Linux user. While specific settings and privileges can be applied to a role when it’s created, you can also modify a role’s properties later on.
Account management apache cache caching centos centos 6 centos 7 cli command line core. How to Install MongoDB on CentOS 7. PostgreSQL, and Microsoft SQL. Mays , Category: Technical Support Tagged with:. How To Install Docker on. MongoDB features include: full index support, replication.
PostgreSQL is an open source object-relational database system. Install PostgreSQL on CentOS 7.
offerov.net