PostgreSQL — свободная система управления различными базами данных, реализованная для разных платформ, включая Windows и Linux. Инструмент поддерживает большое количество типов данных, имеет встроенный скриптовый язык и поддерживает работу с применением классических языков программирования. В Ubuntu PostgreSQL устанавливается через «Терминал» с использованием официальных или пользовательских хранилищ, а уже после этого проводятся подготовительные работы, тестирование и создание таблиц.
Устанавливаем PostgreSQL в Ubuntu
Базы данных применяются в самых разных областях, а вот комфортное управление ими обеспечивает система управления. Многие юзеры останавливаются на PostgreSQL, инсталлируют ее в свою ОС и приступают к работе с таблицами. Далее мы бы хотели пошагово описать весь процесс установки, первого запуска и настройки упомянутого инструмента.
Шаг 1: Установка PostgreSQL
Конечно, начать следует с добавления всех необходимых файлов и библиотек в Ubuntu для обеспечения нормального функционирования PostgreSQL. Осуществляется это с применением консоли и пользовательских либо официальных хранилищ.
- Запустите «Терминал» любым удобным способом, например, через меню или зажатием комбинации клавиш Ctrl + Alt + T.
Сначала отметим пользовательские хранилища, поскольку туда обычно в первую очередь выгружают самые свежие версии. Вставьте в поле команду sudo sh -c ‘echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list’ , а затем нажмите на Enter.
Введите пароль от своей учетной записи.
Осталось только обновить системные библиотеки стандартной командой sudo apt-get update .
Если же вы заинтересованы в получении последней доступной версии PostgreSQL из официального репозитория, требуется написать в консоли sudo apt-get install postgresql postgresql-contrib и подтвердить добавление файлов.
По завершении успешной инсталляции можно переходить к запуску стандартной учетной записи, проверке работы системы и начальной конфигурации.
Шаг 2: Первый запуск PostgreSQL
Управление установленной СУБД тоже происходит через «Терминал» с помощью соответствующих команд. Обращение к созданному по умолчанию пользователю выглядит так:
- Введите команду sudo su — postgres и нажмите на Enter. Такое действие позволит вам перейти к управлению от лица созданной по умолчанию учетной записи, которая на текущий момент выступает в роли основной.
Вход в консоль управления под видом используемого профиля осуществляется через psql . Разобраться с окружением вам поможет активация help — это покажет все доступные команды и аргументы.
Просмотр информации о текущем сеансе PostgreSQL выполняется через conninfo .
Выйти из окружения поможет команда q .
Теперь вы знаете о том, как выполнить вход в учетную запись и перейти в консоль управления, поэтому самое время переходить к созданию нового пользователя и его БД.
Шаг 3: Создание пользователя и базы данных
Не всегда удобно работать уже с имеющейся стандартной учетной записи, да и не всегда это нужно. Именно потому мы предлагаем рассмотреть процедуру создания нового профиля и привязку к нему отдельной базы данных.
- Находясь в консоли под управлением профиля postgres (команда sudo su — postgres ), напишите createuser —interactive , а затем задайте ему подходящее имя, вписав символы в соответствующую строку.
Далее определитесь, хотите ли вы предоставить пользователю права суперпользователя для доступа ко всем системным ресурсам. Просто выберите подходящий вариант и переходите далее.
Базу данных лучше назвать таким же именем, как была названа учетная запись, поэтому стоит использовать команду createdb lumpics , где lumpics — имя пользователя.
Переход к работе с указанной базой данных происходит через psql -d lumpics , где lumpics — название БД.
Шаг 4: Создание таблицы и работа со строками
Настало время создать свою первую таблицу в назначенной базе. Выполняется эта процедура тоже через консоль, однако разобраться с основными командами будет нетрудно, ведь от вас всего лишь требуется следующее:
- После перехода к базе введите такой код:
CREATE TABLE test (
equip_id serial PRIMARY KEY,
type varchar (50) NOT NULL,
color varchar (25) NOT NULL,
location varchar(25) check (location in (‘north’, ‘south’, ‘west’, ‘east’, ‘northeast’, ‘southeast’, ‘southwest’, ‘northwest’)),
install_date date
);
Сначала указывается имя таблицы test (вы можете выбрать любое другое название). Далее описывается каждый столбец. Мы выбрали названия type varchar и color varchar только для примера, вам же доступно указание любого другого, но только с применением латинских символов. Цифры в скобках отвечают за размер столбца, что напрямую связано с помещающимися туда данными.
После ввода остается только вывести таблицу на экран с помощью d .
Вы видите простой проект, не содержащий в себе пока никакой информации.
Новые же данные добавляются через команду INSERT INTO test (type, color, location, install_date) VALUES (‘slide’, ‘blue’, ‘south’, ‘2018-02-24’); Сначала указывается название таблицы, в нашем случае это test, затем перечисляются все столбцы, а в скобках указываются значения, обязательно в кавычках.
Далее можете добавить еще одну строку, например, INSERT INTO test (type, color, location, install_date) VALUES (‘swing’, ‘yellow’, ‘northwest’, ‘2018-02-24’);
Запустите таблицу через SELECT * FROM test; , чтобы оценить результат. Как видите, все расположилось правильно и данные внесены верно.
Если же вам потребуется удалить какое-либо значение, делайте это через команду DELETE FROM test WHERE type = ‘slide’; , указав в кавычках нужное поле.
Шаг 5: Установка phpPgAdmin
Не всегда управление БД легко выполняется через консоль, поэтому лучше всего модернизировать ее, установив специальный графический интерфейс phpPgAdmin.
- Первоочередно через «Терминал» загрузите последние обновления для библиотек через sudo apt-get update .
Установите веб-сервер Apache sudo apt-get install apache2 .
После инсталляции протестируйте его работоспособность и корректность синтаксиса с помощью sudo apache2ctl configtest . Если что-то пошло не так, ищите ошибку по описанию на официальном сайте Apache.
Запустите сервер, введя sudo systemctl start apache2 .
Теперь, когда обеспечено корректное функционирование сервера, можно добавить библиотеки phpPgAdmin, загрузив их с официального хранилища через sudo apt install phppgadmin .
Далее следует немного изменить конфигурационный файл. Откройте его через стандартный блокнот, указав gedit /etc/apache2/conf-available/phppgadmin.conf . Если документ доступен только для чтения, потребуется в команде перед gedit указать еще и sudo .
Перед строкой «Require local» поставьте # , чтобы переделать ее в комментарий, а снизу введите Allow From all . Теперь доступ к адресу будет открыт для всех устройств сети, а не только для локального ПК.
Перезапустите веб-сервер sudo service apache2 restart и можете смело переходить к работе с PostgreSQL.
В этой статье мы рассмотрели не только PostgreSQL, но и установку веб-сервера Apache, использующегося в объединении программного обеспечения LAMP. Если вы заинтересованы в обеспечении полноценного функционирования своих сайтов и других проектов, советуем ознакомиться с процессом добавления остальных компонентов, прочитав другую нашу статью по следующей ссылке.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Тестировалось и работает на Ubuntu Linux (10.04 — 16.04 x86, x86_64) и PostgreSQL 8.4 — 9.4, но оно также должно быть применимо для более старых версий (Ubuntu и PostgreSQL) и других Debian-based дистрибутивов.
Для базовой установки в командной строке введите следующие команды (или найдите перечисленные пакеты в синаптике, если вы предпочитаете работать с ним):
Оговорюсь сразу, что статья написана под 8.4. У кого более поздние версии, вам придется немного подправить пути.
sudo apt-get install postgresql postgresql-client postgresql-contrib |
Если Вы устанавливаете на локальный компьютер или на сервер, где установлены иксы, то для администрирования можно установить Pgadmin:
sudo apt-get install pgadmin3 |
Эти команды установят сервер и клиент БД, некоторые дополнительные скрипты и графическую утилиту pgAdmin для работы с БД.
Теперь нам необходимо переустановить пароль админского аккаунта ‘postgres’ сервера, чтобы мы могли использовать его для задач системного администрирования. Введите в командной строке (подставьте вместо password пароль, который вы хотите использовать):
sudo su postgres -c psql postgres
postgres=# ALTER USER postgres WITH PASSWORD ‘сюда_записываем_нужный_вам_пароль’;
postgres=# q
Эти команды изменяют пароль внутри БД, теперь нам необходимо сделать тоже самое с unix пользователем ‘postgres’, замечу что пароли должны быть одинаковы:
sudo passwd -d postgres |
Снимаем сроки паролей и меняем пароль, как я и говорил на идентичный, что писали в базу:
sudo su postgres -c passwd |
Введите тот же пароль, который вы использовали в прошлый раз.
Теперь мы можем использовать и программу pgAdmin, и консольный клиент (от пользователя postgres), чтобы работать с сервером БД. Но, перед запуском pgAdmin, мы должны установить админский пакет PostgreSQL, который включит лучшее логгирование и мониторинг в pgAdmin. Запустите следующую команду:
sudo postgres -c psql /usr/share/postgresql/8.4/contrib/adminpack.sql * |
Наконец, нам необходимо настроить сервер для работы в сети, иначе он будет доступен только с локальной машины. Чтобы сделать это, сначала необходимо отредактировать в консоли postgresql.conf:
sudo nano /etc/postgresql/8.4/main/postgresql.conf |
listen_addresses = ‘localhost’ |
listen_addresses = ‘*’ |
И снимаем комментарий с
port = 5432 |
Сохраните файл нажав Ctrl +X .
Последний шаг — мы должны определить, кто должен иметь доступ к серверу. Это настраивается с помощью файла pg_hba.conf file. (Этот шаг можно также сделать с помощью последних версий pgAdmin (1.6.x), плюс вам даже нет необходимости вычислять IP адреса и маски подсетей. Но это не исключает необходимости знать, как это работает.)
sudo nano /etc/postgresql/8.4/main/pg_hba.conf |
Пример рабочего конфига:
sudo /etc/init.d/postgresql-8.4 restart |
Установка словарей PostgreSQL для русского полнотекстового поиска.
Словари можно скачать отсюда http://wiki.services.openoffice.org/wiki/Dictionaries#Russian_.28Russia.29
Скачиваете файл Ru_ru.zip, разархивируете и закидываете к себе файлы ru_RU.dic и ru_RU.aff
Словари в кодировке koi8 для работы с postgresql надо преобразовать в utf-8
Для этого на хосте выполняете команду
iconv -f koi8-r -t utf-8 /usr/share/postgresql/8.4/tsearch_data/russian.affix iconv -f koi8-r -t utf-8 /usr/share/postgresql/8.4/tsearch_data/russian.dict |
iconv -f koi8-r -t utf-8 /usr/share/postgresql/8.4/tsearch_data/english.affix iconv -f koi8-r -t utf-8 /usr/share/postgresql/8.4/tsearch_data/english.dict |
Эта команда преобразовывает кодировку словарей, переименовывает их и копирует в нужную папку. Пути зависят от установки. Найдите у себя папку tsearch_data , которая содержит словари, ее и пропишите.
Теперь создаем полнотекстовую конфигурацию для работы с русским (ну и английским) Посылаете запросы к postgresql
CREATE TEXT SEARCH DICTIONARY russian_ispell ( TEMPLATE = ispell, DictFile = russian, AffFile = russian, StopWords = russian ); CREATE TEXT SEARCH CONFIGURATION ru ( COPY = russian ); |
CREATE TEXT SEARCH DICTIONARY english_ispell (
TEMPLATE = ispell,
DictFile = english,
AffFile = english,
StopWords = english
);
CREATE TEXT SEARCH CONFIGURATION en ( COPY = russian );
ALTER TEXT SEARCH CONFIGURATION ru ALTER MAPPING FOR hword, hword_part, word WITH russian_ispell, russian_stem;
ALTER TEXT SEARCH CONFIGURATION ru ALTER MAPPING FOR asciihword, asciiword, hword_asciipart WITH english_ispell, english_stem;
Чтобы эта полнотекстовая конфигурация работала по умолчанию прописываете в postgresql.conf
default_text_search_config = ‘ru ‘ |
Ну или можете в каждой сессии посылать команду
SET default_text_search_config = ‘ru’;
select to_tsvector(‘ru’, ‘мама мыла раму’); to_tsvector ————————————- ‘мама’:1 ‘мыло’:2 ‘мыть’:2 ‘рама’:3 (1 запись) |
Полнотекстовая конфигурация работает.
Если вы хотите использовать данный сервер в связке apache2 + php5 + postgresql, то вам необходимо установить следующие пакеты:
sudo apt-get install apache2 libapache2-mod-php5 php5 php5-common php5-gd php5-pgsql |
Прошло немного времени и понадобился скриптик который будет делать бекапы баз. И так создаем каталог для бекапов:
mkdir /home/backup |
Создаем скрипт с таким содержимым:
#!/bin/bash logfile=»/home/backup/pgsql.log» backup_dir=»/home/backup» touch $logfile databases=`psql -h localhost -U postgres -q -c «l» | sed -n 4,/eof/p | grep -$ echo «Starting backup of databases » >> $logfile for i in $databases; do dateinfo=`date ‘+%Y-%m-%d %H:%M:%S’` timeslot=`date ‘+%Y%m%d%H%M’` /usr/bin/vacuumdb -z -h localhost -U postgres $i >/dev/null 2>&1 /usr/bin/pg_dump -U postgres -i -F c -b $i -h 127.0.0.1 -f $backup_dir/$i-datab$ echo «Backup and Vacuum complete on $dateinfo for database: $i » >> $logfile done echo «Done backup of databases » >> $logfile tail -15 /home/backup/pgsql.log | mailx admin@youdomain.ru |
Вешаем на него права:
chmod +x backup.sh |
Запускать скрипт можно ручную, а кому лениво можно кроном, например каждый понедельник в 3 часа ночи:
00 3 * * 1 root /путь_до_скрипта/backup.sh |
Дамп базы base1 в файл архива dump.tar.gz
pg_dump -h localhost -U base1 -F c -f dump.tar.gz base1 |
Загрузка архива дампа dump.tar.gz в базу vhsup
pg_restore -h localhost -U base1 -F c -d base1 dump.tar.gz |
psql -d base1 -f /share/BackUPs/PostgreSQL/base1.sql |
Если вам необходимо увеличить количество одновременных соединений к базе, то нужно переопределить лимиты ядра, при том что выставляемые лимиты на прямую зависят от объема памяти. Допустим у вас 16GB оперативной памяти, введем в терминале команду:
sysctl -w kernel.shmmax=17179869184 sysctl -w kernel.shmall=4194304 |
sysctl -w kernel.shmmax=8589934592 sysctl -w kernel.shmall=4194304 |
Настройки лучше сохранить в /etc/sysctl.conf для их применения после перезагрузки:
kernel.shmmax=17179869184 kernel.shmall=4194304 |
В древних дистрибутивах может не оказаться программы sysctl, тогда внесите изменения:
echo 17179869184 >/proc/sys/kernel/shmmax echo 4194304 >/proc/sys/kernel/shmall |
Для оптимизации PostgreSQL существует утилита pgtune. Её можно установить и собрать оптимальный файл конфигурации, и если он не противоричит вашим моральным принципам, можете им заменить ваш рабочий файл конфигурации.
Введение
PostgreSQL (произносится как «Пост-Грес-Кью-Эл») — свободная современная СУБД с широкими возможностями. Её используют такие компании, как Alibaba, Instagram, Skype, Yahoo и многие другие. Это говорит о надёжности системы, и при этом она является простой в установке, использовании и обслуживании. Поверхностно ознакомиться с ней можно по статье в Википедии: https://ru.wikipedia.org/wiki/PostgreSQL
PostgreSQL является кроссплатформенной СУБД с открытым исходным кодом, поэтому её можно установить практически на любой сервер. Все конфигурации серверов и все операционные системы, предоставляемые vscale, позволяют использование PostgreSQL.
Рассмотрим установку и настройку на примере Ubuntu 16.04 64bit.
Технические требования
• Пользователь с sudo-правами
• Ubuntu 16.04
Шаг 1. Выбор источника для установки
PostgreSQL является очень популярным сервером баз данных, поэтому присутствует в официальных репозиториях Ubuntu. Однако в PPA разработчиков PostgreSQL можно найти самую свежую версию. Например, на момент написания данной инструкции в репозитории Ubuntu имеется PostgreSQL 9.5, а из PPA можно установить 9.6. Если у вас нет потребности в самых последних возможностях данной СУБД, то текущий шаг можно пропустить. Иначе добавьте репозиторий PostgreSQL в системный список источников:
и добавьте для него ключ
Это позволит при обновлении пакетов получать наиболее свежие версии.
Шаг 2. Установка PostgreSQL
Если система установлена недавно и вы пропустили предыдущий шаг, то данный шаг можно пропустить, так как в процессе установки системы производится обновление индекса пакетов. В противном случае выполните команду:
Эта команда произведёт обновление индекса, что позволит устанавливать свежие и актуальные пакеты.
Установка PostgreSQL из официальных репозиториев и из PPA производится одинаково. Загрузим и установим пакеты PostgreSQL и contrib (contrib предоставляет некоторый дополнительный функционал и утилиты):
Шаг 3. Подключение к серверу баз данных
Во время установки программы в системе автоматически была создана учётная запись администратора баз данных — postgres. На данном этапе доступ к системе баз данных можно получить только через неё.
Вы можете либо переключиться в сессию учётной записи postgres и запустить там оболочку программы:
либо запустить оболочку от имени postgres без переключения сессии:
Попав тем или иным способом в командную строку psql, вам необходимо знать, как из неё выйти. Это можно сделать с помощью ввода команды выхода:
(сокращение от quit).
Шаг 4. Создание новой роли
Если вы производили установку по инструкции, то к этому моменту в вашей СУБД есть только одна роль — postgres. Рекомендуется не использовать данную роль для работы со своими базами данных, а создавать для каждой базы новую роль (или несколько при необходимости). Для создания новой роли предусмотрены два стандартных способа:
- интерактивный режим, в котором достаточно ответить на несколько простых вопросов;
- команда для создания роли через командную строку СУБД.
Мы не будем подробно останавливаться на интерактивном режиме, так как создать роль, которая полностью удовлетворяет требованиям в большинстве случаев, мы можем всего одной простой командой (перед этим нужно находиться в режиме командной строки как было описано на Шаге 3). Не забудьте заменить username на желаемое имя пользователя, а password — на пароль для этого пользователя:
Имя указывается без кавычек, а пароль — в одинарных кавычках.
Шаг 5. Создание базы данных
Находясь в режиме командной строки psql, создать базу данных мы можем командой create database и указав название базы данных. Например, чтобы воздать БД с именем vscale_db, выполните команду:
Шаг 6. Назначение прав
Созданной ранее нами роли нужно назначить права на базу данных. В большинстве проектов, где у вас будет использоваться всего один пользователь базы данных, ему будут требоваться полные права. Выдать их можно следующим образом:
где vscale_db — название базы данных, выбранное на шаге 5, а username — имя пользователя, заданное на шаге 4.
Вся минимально требующаяся предварительная настройка завершена. Вы можете выйти из psql, введя «q».
Шаг 7. Аутентификация и начало работы с базой данных
К текущему моменту у вас есть всё необходимое для начала работы с базой данных. Чтобы подключиться к ней, запустите psql с параметрами: хост «-h localhost» (так как подключаемся к локальной базе данных), название БД «vscale_db» и имя пользователя «username»:
После этого вы сможете взаимодействовать с вашей базой данных: создавать таблицы, созранять в них информцию, делать выборки и т.д.
Заключение
Суммируя вышесказанное, получаем весьма простую последовательность действий для подготовки PostgreSQL к использованию. Установка сервера баз данных и запуск оболочки:
Создание пользователя, базы данных и назначение прав:
«>