Установка postgresql ubuntu 16.04
Реляционные системы управления базами данных являются ключевым компонентом многих веб-сайтов и приложений. Они обеспечивают структурированный способ хранения данных и организацию доступа к информации.
Postgresql — это объектно-реляционная система управления базами данных, которая все больше и больше вытесняет MySQL и производственных серверов.
Ее преимущество в множестве дополнительных функций и улучшений, таких как надежная передача данных и параллелизация без блокировок чтения.
Вы можете использовать эту СУБД из различных языков программирования, а ее синтаксис запросов PL/pgSQL очень похож на MySQL от Oracle.
В этой статье мы рассмотрим как выполняется установка Postgresql Ubuntu 16.04, а также как выполнить первоначальную настройку и подготовку к работе этой системы.
Установка Postgresql в Ubuntu 16.04
Это очень популярный сервер баз данных, потому программа есть в официальных репозиториях. Но если вы хотите получить самую новую версию, то придется добавить в систему PPA. Для этого выполните команды:
sudo sh -c 'echo «deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main» >> /etc/apt/sources.list.d/pgdg.list'
$ wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O — | sudo apt-key add —
Затем обновите списки пакетов, чтобы получить самую новую доступную версию:
sudo apt-get update
Установка Postgresl Ubuntu из PPA или официальных репозиториев выглядит одинаково:
sudo apt-get install postgresql postgresql-contrib
Когда установка будет завершена, можно переходить к настройке.
Настройка Postgresql в Ubuntu
Вы знаете как установить Postgresql Ubuntu, но этого недостаточно для начала полноценной работы. Первым делом, откройте терминал и переключите его на пользователя postgres с помощью команды:
sudo su — postgres
Эта учетная запись создается во время установки программы и на данный момент вы можете получить доступ к системе баз данных только с помощью нее. По умолчанию postgress использует концепцию ролей для аутентификации и авторизации.
Это очень похоже на учетные записи Unix, но программа не различает пользователей и групп, есть только роли.
Сразу после установки Postgresql пытается связать свои роли с системными учетными записями, если для имени системной учетной записи существует роль, то пользователь может войти в консоль управления и выполнять позволенные ему действия. Таким образом, после переключения на пользователя postgres вы можете войти в консоль управления:psql
И посмотреть информацию о соединении:
conninfo
Чтобы выйти наберите:
q
Теперь давайте рассмотрим как создать другие роли и базы данных.
Создание роли Postgresql
Вы уже можете полноценно работать с базой данных с помощью учетной записи postgres, но давайте создадим дополнительную роль. Учетная запись postgres является администратором, поэтому имеет доступ к функциям управления. Для создания пользователя выполните:
createuser —interactive
Скрипт задаст лишь два вопроса, имя новой роли и нужно ли делать ее суперпользователем.
Создание базы данных
Точно также как имена ролей сопоставляются с системными пользователями, имя базы данных будет подбираться по имени пользователя. Например, если мы создали пользователя segiy, то по умолчанию система попытается получить доступ к базе данных segiy. Мы можем ее очень просто создать:
createdb sergiy
Дальше, чтобы подключиться к этой базе данных нам нужно войти от имени одноименного пользователя:
sudo su — sergiy
Заходим в консоль и смотрим информацию о подключении:
psql
Все верно сработало. Мы подключились с помощью роли segiy к базе segiy. Если нужно указать другую базу данных, вы можете сделать это с помощью опции -d, например:
psql -d postgres
Все сработало верно, при условии, что все компоненты были настроены как описано выше.
Создание таблиц
Теперь, когда вы знаете как подключится к базе данных Postgresql давайте рассмотрим как выполняются основные задачи. Сначала разберем создание таблиц для хранения некоторых данных. Для создания таблицы Postgresql используется такой синтаксис:
CREATE TABLE имя таблицы (
имя_колонки1 тип_колонки ( длина ) ограничения ,
имя_колонки2 тип_колонки ( длина ),
имя_колонки3 тип_колонки ( длина )
);
Как видите, сначала мы задаем имя таблицы, затем описываем каждый столбец. Столбец должен иметь имя, тип и размер, также можно задать ограничения для данных, которые там будут содержаться. Например:
CREATE TABLE playground (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
);Мы создали таблицу детской площадки для описания оборудования, которое на ней есть. Сначала идет идентификатор equip_id, который имеет тип serial, это значит что его значение будет автоматически увеличиваться, ключ primary key значит, что значения должны быть уникальны.
Следующие колонки — обычные строки, для них мы задаем длину поля, они не могут быть пустыми (NOT NULL). Следующий столбец тоже строка, но она может содержать только одно из указанных значений, последний столбец — дата создания.
Вы можете вывести все таблицы, выполнив команду:
d
Здесь мы видим что кроме нашей таблицы, существует еще одна переменная — playground_equip_id_seq. В ней содержится последнее значение этого поля. Если нужно вывести только таблицы, выполните:
dt
Вставка и удаление данных
У нас есть таблица, но пока что она пуста. Мы можем добавить в нее некоторые данные. Давайте добавим пункт, описывающий качели. Для этого используются такие команды:
INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2016-04-28');
INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2015-08-16');
Заметьте, что имена столбцов не обязательно заключать в кавычки, а вот имена значений — обязательно. Теперь смотрим что получилось:
SELECT * FROM playground;
Удалять записи можно по любому критерию, например, удалим записи, поле type которых имеет значение slide:
DELETE FROM playground WHERE type = 'slide';
И снова смотрим что получилось:
SELECT * FROM playground;
Установка phppgadmin
Не всегда удобно управлять базой данных из терминала. Иногда нужно получить доступ ко всему через веб-интерфейс. Для этого есть программа phppgadmin, но для ее работы нужен веб-сервер Apache. Для установки программы наберите:
sudo apt install phppgadmin
Когда установка будет завершена откройте файл /etc/apache2/conf-available/phppgadmin.conf и закоментируйте строку:
Require local
А вместо нее добавьте:
Allow From all
Это необходимо, чтобы открыть доступ к этому адресу не только с локального компьютера, но и их других устройств сети. Заметьте, что вы не сможете войти под учетной записью postgres, это сделано из соображений безопасности. Когда завершите, перезагрузите Apahce:
sudo service apache2 restart
Выводы
Установка и настройка PostgreSQL 10 на Linux Ubuntu Server
Привет! Материал сегодня будет посвящен рассмотрению процесса установки СУБД PostgreSQL 10 на серверную операционную систему Linux Ubuntu Server, а также первоначальной настройки PostgreSQL 10, для того чтобы можно было ее использовать, например, в сети своей организации.
Другими словами, сейчас мы с Вами реализуем сервер баз данных на базе Linux Ubuntu Server и PostgreSQL 10, который будет иметь базовую настройку. Если Вас интересует реализация подобного сервера только на базе операционной системы CentOS 7.1, то можете ознакомиться с материалом «Установка PostgreSQL 9.4 на CentOS 7.1», в нем мы как раз рассматривали данный процесс.
Так как PostgreSQL 10 – это новая версия данной системы управления базами данных, то начать предлагаю с краткого рассмотрения новых возможностей 10 версии.
Примечание! 10 версия PostgreSQL была актуальна на момент написания статьи, на текущий момент доступны новые версии.
Что нового в PostgreSQL 10?
Начиная с PostgreSQL 10, меняется схема нумерации версий, это вызвано тем, что раньше выходило множество минорных версий (например, 9.x), многие из которых на самом деле вносили значительные изменения не соответствующие минорным, теперь мажорные версии будут нумероваться 10, 11, 12, а минорные 10.1, 10.2, 11.1 и так далее.
Основные нововведения:
- Логическая репликация с использованием публикации и подписки — теперь возможно осуществлять репликацию отдельных таблиц на другие базы, это реализовывается с помощью команд CREATE PUBLICATION и CREATE SUBSCRIPTION;
- Декларативное партиционирование таблиц – в PostgreSQL 10 добавился специальный синтаксис для партиционирования, который позволяет легко создавать и поддерживать таблицы с интервальной или списочной схемой партиционирования;
- Улучшенный параллелизм запросов – другими словами, появилась дополнительная оптимизация запроса, для того чтобы пользователь получал данные быстрей;
- Аутентификация пароля на основе SCRAM-SHA-256 – добавился новый метод аутентификации, который является более безопасным, чем метод с использованием MD5;
- Quorum Commit для синхронной репликации – теперь администратор может указать что, если какое-либо количество реплик подтвердило, что внесено изменение в базу данных, данное изменение можно считать надёжно зафиксированным;
- Значительные общие улучшения производительности;
- Улучшенный мониторинг и контроль.
Более детально обо всех нововведениях можете почитать на официальном сайте – PostgreSQL 10.
Установка PostgreSQL 10 на Linux Ubuntu Server 16.04
Как Вы уже, наверное, поняли рассматривать процесс установки и соответственно настройки PostgreSQL 10 мы будем на примере версии Ubuntu Server 16.04, так как эта версия имеет долгосрочную поддержку и на текущий момент является актуальной среди LTS версий.
Шаг 1
Установку и настройку PostgreSQL необходимо осуществлять с правами суперпользователя, поэтому давайте сразу переключимся на пользователя root. Для этого вводим sudo -i (или sudo su) и жмем Enter.
Шаг 2
Затем первое, что нам нужно сделать, это проверить есть ли в репозиториях версия PostgreSQL 10. Это можно сделать путем ввода следующей команды.
apt-cache search postgresql-10
Как видим, в Ubuntu Server 16.04 10 версии PostgreSQL нет, поэтому нам нужно подключить необходимый репозиторий, в котором присутствует PostgreSQL 10. Если у Вас более новая версия Ubuntu Server и в стандартных репозиториях есть 10 версия PostgreSQL, то дополнительный репозиторий Вам подключать не нужно, т.е. данный шаг Вы пропускаете.
Для подключения репозитория нам необходимо создать специальный файл с адресом нужного репозитория. Адреса для каждой версии Ubuntu разные, поэтому если у Вас версия Ubuntu не 16.04, то уточнить адрес Вы можете на официальном сайте PostgreSQL на странице загрузке – вот она.
После перехода на страницу выбираете версию Ubuntu, после чего у Вас отобразится адрес нужного репозитория.
Для упрощения процедуры создания файла давайте напишем скрипт с выводом адреса репозитория, а вывод перенаправим в файл. Для Ubuntu Server 16.04 подключение нужного репозитория будет выглядеть следующим образом.
sh -c 'echo «deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main» >> /etc/apt/sources.list.d/pgdg.list' Также нам необходимо импортировать ключ подписи репозитория, для этого вводим команду.
wget —quiet -O — https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add —
Далее обновляем список пакетов.
apt-get update
И еще раз проверяем наличие пакета с PostgreSQL 10.
apt-cache search postgresql-10
Теперь нужный пакет у нас есть, и мы можем переходить к установке PostgreSQL 10.
Шаг 3
Для установки PostgreSQL 10 пишем следующую команду.
apt-get -y install postgresql-10
По окончанию процесса установки проверяем, запущен ли сервер PostgreSQL.
systemctl status postgresql
Как видим, PostgreSQL 10 установился и работает.
Базовая настройка PostgreSQL 10 в Linux Ubuntu Server
После установки нам необходимо выполнить базовую настройку PostgreSQL 10, например: создать пользователя, указать какие сетевые интерфейсы будет прослушивать сервер, а также разрешить подключение по сети. Начнем мы с создания пользователя и базы данных.
Создание пользователя и базы данных в PostgreSQL
После установки, к серверу PostgreSQL мы можем подключиться только с помощью системного пользователя postgres, причем без пароля. Для этого переключаемся на пользователя postgres (учетная запись в Ubuntu создана автоматически во время установки PostgreSQL).
su — postgres
Запускаем psql — это консоль управления PostgreSQL.
psql
Сначала зададим пароль для пользователя postgres.
password postgres
Затем создаем нового пользователя на сервере PostgreSQL, так как работать от имени postgres крайне не рекомендуется.
create user testuser with password '123456';
где, testuser – это имя пользователя, '123456' – это его пароль.
Далее давайте создадим базу данных.
create database testdb;
где, testdb – это имя новой базы данных.
Теперь давайте дадим права на управление БД нашему новому пользователю.
grant all privileges on database testdb to testuser;
Все готово, выходим из консоли.
q
Для проверки, давайте подключимся к PostgreSQL от имени нового пользователя, на предложение о вводе пароля вводим пароль от новой учетной записи.
psql -h localhost testdb testuser
Работает. Для выхода снова набираем q.
q
Для переключения обратно на root вводим exit.
exit
Разрешаем подключение к PostgreSQL по сети
По умолчанию PostgreSQL прослушивает только адрес localhost, поэтому для того чтобы мы могли подключаться по сети, нам нужно указать какие сетевые интерфейсы будет просушивать PostgreSQL.
Я для примера укажу, что прослушивать нужно все доступные интерфейсы.
Если у Вас несколько сетевых интерфейсов, и Вы хотите, чтобы PostgreSQL использовал только один конкретный, то Вы его можете указать именно здесь.
Для этого открываем файл postgresql.conf, например редактором nano.
nano /etc/postgresql/10/main/postgresql.conf
Находим следующую строку.
#listen_addresses = 'localhost'
и заменяем на (вместо звездочки Вы в случае необходимости указываете IP адрес нужного интерфейса).
listen_addresses = '*'
Сохраняем изменения сочетанием клавиш CTRL+O и подтверждаем нажатием Enter, затем просто закрываем редактор nano сочетанием клавиш CTRL+X.
Как установить и начать использовать PostgreSQL в Ubuntu 16.04
Системы управления реляционными базами данных являются ключевым компонентом работы многих веб-сайтов и приложений. Они предоставляют средство структурированного хранения, организации и доступа к информации.
PostgreSQL или Postgres — это система управления реляционной базой данных, предоставляющая реализацию языка запросов SQL. Это популярный выбор для множества больших и малых проектов.
Postgres также имеет преимущество соответствия стандартам (в том числе SQL), и, кроме того, обладает множеством продвинутых возможностей, например, надёжные транзакции (reliable transactions) и параллелизм без блокировки чтения (concurrency without read locks).
В этой статье мы продемонстрируем, как установить Postgres на виртуальный сервер с Ubuntu 16.04, а также осветим несколько простых сценариев его использования.
Перед установкой
Стандартные репозитории Ubuntu содержат пакеты Postgres, поэтому для установки мы будем использовать пакетный менеджер apt.
Сначала обновим локальный список пакетов. Далее мы установим пакет Postgres и пакет -contrib, который добавляет дополнительную функциональность:
- sudo apt-get update
- sudo apt-get install postgresql postgresql-contrib
Теперь, когда наше программное обеспечение установлено, мы можем детальнее остановиться на том, как оно работает, и почему работа с Postgres может отличаться от использования других баз данных, с которыми вы могли работать ранее.
Использование ролей и баз данных PostgreSQL
По умолчанию Postgres использует концепцию ролей для осуществления аутентификации и авторизации. Они, в некотором роде, подобны Unix аккаунтам, но Postgres не делает различий между пользователями и группами, а вместо этого предпочитает более гибкий термин «роль».
После установки Postgres настраивает так называемую идентичную аутентификацию (ident authentication). Это означает, что Postgres ассоциирует свои роли с подходящими Unix/Linux аккаунтами. Если роль существует в Postgres, пользователь с этим же именем в Unix/Linux сможет осуществлять вход под этой ролью.
Существует несколько способов использовать это для доступа к Postgres.
Переключение на аккаунт postgres
В процессе установки был создан аккаунт пользователя с именем postgres, который был ассоциирован с ролью Postgres по умолчанию. Для использования Postgres мы можем осуществить вход с этим аккаунтом.
Переключимся на использование postgres аккаунта на вашем сервере этой командой:
Теперь вы можете получить доступ к командной строке Postgres напечатав команду:
После этого вы сможете войти и начать взаимодействовать с системой управления базами данных.
Для выхода из PostgreSQL напечатайте:
После этого вы должны увидеть стандартное приглашение командной строки Linux (Linux command prompt).
Доступ к командной строке Postgres без переключения аккаунтов
Вы также можете выполнять команды postgres напрямую с помощью sudo.
Например, выше мы хотели получить доступ к интерфейсу командной строки Postgres. Мы можем сделать это одной строкой, используя команду psql от имени пользователя postgres с sudo:
Это позволит вам войти в интерфейс командной строки Postgres без использования оболочки bash.
Для выхода из интерактивной сессии Postgres напечатайте:
Создание новой роли
На данный момент у нас есть всего одна роль postgres. Мы можем создавать новые роли используя команду createrole из командной строки. Флаг —interactive позволит сделать это в интерактивном режиме, когда система будет запрашивать необходимые значения у вас.
Если вы осуществили вход с помощью аккаунта postgres, вы можете создать нового пользователя напечатав команду:
Если вы предпочитаете использовать sudo перед вашими командами и не переключаться между пользователями, вы можете сделать это следующим образом:
- sudo -u postgres createuser —interactive
Этот скрипт задаст вам несколько вопросов, и, в зависимости от ваших ответов, выполнит необходимые команды Postgres для создания желаемого аккаунта пользователя.
Вывод
Enter name of role to add: sammyShall the new role be a superuser? (y/n) y
Вы можете использовать дополнительные флаги при выполнении этой команды. Ознакомиться с полным списком флагов можно изучив страницу man:
Создание новой базы данных
Ещё одно допущение, которое делает Postgres, заключается в том, что для каждой роли, которая была использована для входа, необходимо создать базу данных с тем же именем, что и имя роли, к которой можно будет осуществлять доступ с помощью этой роли.
Поэтому для созданного нами ранее пользователя с именем sammy соответствующая роль будет по умолчанию пытаться соединиться с базой данных sammy. Вы можете создать эту базу данных с помощью команды createdb.
Если вы вошли с использованием аккаунта postgres, вам необходимо ввести нечто такое:Если вы предпочитаете использовать sudo перед вашими командами и не переключаться между пользователями, вы можете сделать это следующим образом:
- sudo -u postgres createdb sammy
Запуск командной строки Postgres с новой ролью
Для использования идентичной аутентификации (ident authentication) вам необходимо иметь пользователя Linux с тем же именем, что и имя роли и базы данных Postgres.
Если у вас нет такого пользователя, вы можете создать его с помощью команды adduser. Для этого вам потребуется аккаунт с привилегиями sudo (вы не сможете использовать для этого пользователя postgres):
После создания пользователя вы можете сменить пользователя и зайти в Postgres командами:
Или вы можете сделать это следующим образом:
Вы автоматически войдёте в Postgres, если все компоненты были сконфигурированы правильным образом (как описано выше).
Если вы хотите войти в другую базу данных, вы можете указать имя базы данных в явном виде:
После осуществления входа вы можете проверить информацию о текущем подключении командой:
Вывод
You are connected to database «sammy» as user «sammy» via socket in «/var/run/postgresql» at port «5432».
Эта информация может быть полезна при подключении к базам данных и с использованием пользователей, отличных от созданных по умолчанию.
Создание и удаление таблиц
Теперь, когда вы знаете, как осуществлять доступ к СУБД Postgres, мы можем кратко рассмотреть вопрос выполнения некоторых распространённых задач в Postgres.
Для начала создадим таблицу для хранения данных. Давайте создадим таблицу, которая описывает параметры инвентаря детской площадки.
Базовый синтаксис для этой команды выглядит примерно так:
CREATE TABLE table_name ( column_name1 col_type (field_length) column_constraints, column_name2 col_type (field_length), column_name3 col_type (field_length));
Как видно из этого примера, вы задаём имя таблицы и затем определяем необходимые столбцы, их тип и максимальную длину хранимых значений. Мы также можем добавлять ограничения на значения в каждом из столбцов.
Вы можете более детально ознакомиться с процессом создания и управления таблицами Postgres в этой статье.
Для целей нашего примера мы создадим простую таблицу:
CREATE TABLE playground ( 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);
Мы создали таблицу для инвентаря детской площадки. Первый столбец содержит идентификатор инвентаря с типом serial. Это целочисленный тип данных с автоинкрементом. Мы задали этот столбец с параметром первичного ключа (primary key), что означает, что все значения должны быть ненулевыми и уникальными.
Для двух наших столбцов (equip_id и install_date) мы не задали максимальную длину значений. Некоторые типы столбцов не требует задания максимальной длины значения, потому что длина определяется типом данных в этом столбце.Кроме того мы создали столбцы type и color, которые не могут быть пустыми. Мы также создали столбец location и настроили его таким образом, что его значение может принимать одно из восьми заданных значений. Последний столбец задаёт дату установки данной единицы инвентаря детской площадки.
Мы можем убедиться, что таблица создана, следующей командой:
Вывод
List of relations Schema | Name | Type | Owner ———+————————-+———-+——- public | playground | table | sammy public | playground_equip_id_seq | sequence | sammy(2 rows)
Наша таблица на месте, но помимо неё у нас теперь есть и нечто под названием playground_equip_id_seq с типом sequence. Это нечто представляет собой реализацию типа serial, который мы задали для столбца equip_id. Таким образом Postgres будет следить за следующим номером в последовательности идентификаторов, эта связь создаётся автоматически для столбцов данного типа.
Если вы хотите увидеть список только таблиц, без объектов-последовательностей, вы можете набрать следующую команду:
Вывод
List of relations Schema | Name | Type | Owner ———+————+——-+——- public | playground | table | sammy(1 row)
Добавление, запрос и удаление данных из таблицы
Теперь, когда у нас есть таблица, мы можем добавить в неё данные.
Сначала добавим горку (slide) и качели (swing). Для того, чтобы это сделать, нам необходимо указать имя таблицы, названия столбцов, а также сами данные:
- INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2014-04-28');
- INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2010-08-16');
При вводе данных необходимо иметь в виду некоторые наиболее распространённые ошибки. Прежде всего, названия столбцов должны быть указаны без кавычек, а данные для этих столбцов — с кавычками.
Также надо иметь в виду, что мы не указываем значения для столбца equip_id. Это значение будет задаваться автоматически при добавление новой записи в таблицу.
Мы можем просмотреть добавленные данные следующей командой:
- SELECT * FROM playground;
Вывод
equip_id | type | color | location | install_date ———-+——-+———+————+————— 1 | slide | blue | south | 2014-04-28 2 | swing | yellow | northwest | 2010-08-16(2 rows)
Как видно из этого консольного вывода, наше поле equip_id было успешно заполнено автоматически, а остальные поля также получили корректные значения.
Если горка на нашей детской площадке сломалась и нам необходимо её убрать, мы можем удалить эту запись из нашей базы следующей командой:
- DELETE FROM playground WHERE type = 'slide';
Теперь при просмотре содержимого таблицы мы увидим, что запись горки более в ней не представлена:
- SELECT * FROM playground;
Вывод
equip_id | type | color | location | install_date ———-+——-+———+————+————— 2 | swing | yellow | northwest | 2010-08-16(1 row)
Как добавлять и удалять столбцы из таблицы
При необходимости мы можем легко добавить дополнительные столбцы и после создания таблицы.
Для примера добавим в нашу таблицу столбец, содержащий информацию о дате последнего осмотра единицы инвентаря детской площадки:
- ALTER TABLE playground ADD last_maint date;
Теперь если мы выведем содержимое таблицы, мы увидим, что новый столбец был добавлен (но существующие записи не содержат никаких значений в этом столбце):
- SELECT * FROM playground;
Вывод
equip_id | type | color | location | install_date | last_maint ———-+——-+———+————+—————+———— 2 | swing | yellow | northwest | 2010-08-16 | (1 row)
Мы также легко можем и удалять столбцы. Например, если наш ремонтный отдел использует отдельный инструмент для отслеживания истории технического обслуживания инвентаря нашей площадки, мы можем удалить созданный ранее столбец следующим образом:
- ALTER TABLE playground DROP last_maint;
Как обновлять данные в таблице
Мы уже знаем, как добавлять записи в таблицу и как удалять их из таблицы. Теперь мы рассмотрим вопрос изменения существующих в таблице записей.
Вы можете обновлять значения существующих записей путём выборки необходимых записей и установки значений необходимых столбцов. Например, мы можем найти все записи для качелей (swing) и изменить их цвет на красный, потому что ранее мы покрасили все качели на нашей детской площадке в красный цвет:
- UPDATE playground SET color = 'red' WHERE type = 'swing';
Мы можем убедиться, что операция завершилась успешно, запросив содержимое таблицы:
- SELECT * FROM playground;
Вывод
equip_id | type | color | location | install_date ———-+——-+——-+————+————— 2 | swing | red | northwest | 2010-08-16(1 row)
Как видите, теперь наши качели красного цвета.
Заключение
Теперь у вас есть установленный и настроенный PostgreSQL на вашем сервере с Ubuntu 16.04. Тем не менее, полученных нами знаний не достаточно для полноценной работы с Postgres. Мы рекомендуем ознакомиться с этими статьями о работе с данной СУБД:
Установка, настройка и использование PostgreSQL на Ubuntu
Если вы собираетесь работать с базами данных на Linux Ubuntu, попробуйте PostgreSQL — объектно-реляционную СУБД. Она подходит для коммерческого использования. В ней много дополнительных модулей и функций.
PgSQL-синтаксис этого приложения чем-то похож на знаменитую утилиту MySQL. Если вы умеете ей пользоваться, то переход на новую площадку будет лёгким.
Чтобы установка PostgreSQL Ubuntu прошла успешно, не нужно вводить много команд.
Установить и настроить СУБД PostreSQL на Ubuntu несложно — просто следуйте нашим инструкциям
Установка
Есть несколько способов скачать программу. Самый простой — через репозиторий.
- Запустите Терминал.
- Для загрузки утилиты напечатайте несколько строчек. Чтобы действовать от имени администратора, напишите sudo перед командой.
- Обновите систему — «apt-get update».
- Проинсталлируйте само приложение — «apt-get install postgresql».
Подождите, пока программа загрузится. И скачайте дополнительные модули:
- Поставьте Contrib — добавьте к предыдущей команде «postgresql-contrib».
- Также пригодится клиент — «postgresql-client».
- Чтобы при работе использовать графический интерфейс, введите в той же строке «apt-get install phppgadmin».
Лучше сразу «проапгрейдить» phpPgAdmin: установить пакет, который расширит его возможности. Вы получите улучшенный мониторинг и логирование. Чтобы его активировать, напишите «sudo su postgres -c psql
Инсталляция будет одинаковой как в случае с репозиторием, так и с PPA
Для инсталляции из РРА подойдут те же самые команды. Можно загрузить установочные файлы с сайта программы. Для этого:
- Используйте команду nano. С ней введите путь к «/etc/apt/sources.list.d/pgdg.list».
- В следующей строке введите deb. Вставьте ссылку — «apt.postgresql.org/pub/repos/apt/». Дополнительно добавьте скрипт — «wily-pgdg main».
- Напечатайте команду для загрузки — wget. С параметром «—quiet -O». Скопируйте ссылку на файл «- postgresql.org/media/keys/ACCC4CF8.asc», чтобы его скачать. В той же строке введите «| sudo apt-key add -» для ключа. Всё с дефисами и вертикальной чертой. Кавычки уберите.
- Обновите систему — «apt-get update». Для этого нужны права администратора (sudo).
- Теперь можете ставить саму программу — «apt-get install postgresql-[версия]».
Далее, скачайте клиент, Contrib и графическую оболочку. Утилита готова. Но нужно её настроить.
Начальная настройка
Недостаточно просто установить PostgreSQL. Ubuntu-программа должна работать вместе с модулями и библиотеками, от которых она зависит. И также надо придумать пароль, чтобы функции приложения были доступны только тем, у кого есть доступ.
После установки потребуется конфигурирование СУБД
- Переключитесь на юзера, из-под которого будете управлять утилитой — «su — postgres».
- Зайдите в консоль программы psql.
- Назначьте код доступа «password postgres». После этой команды напишите желаемый пароль.
- Введите параметр — «postgres=# q».
- Выйдите из аккаунта пользователя — exit.
Теперь настройка Apache и загрузка редактора vim.
- Если он у вас не установлен, впишите команду «apt-gei install vim».
- Подготовьте Апачи для работы с клиентом. Откройте конфигурационный файл — «vim /etc/apache2/conf-available/phppgadmin.conf».
- Раскомментируйте в нём параметр Allow From all. Если его нет, добавьте вручную.
- Найдите строку Require local. Закомментируйте её.
- Сохраните изменения.
Перенастройте phpPgAdmin:
- Откройте файл «vim /etc/phppgadmin/config.inc.php».
- Отыщите там параметр «conf[‘extra_login_security’]». Если стоит значение true, поменяйте его на false.
- Сохраните документ.
- Перезапустите программу — «/etc/init.d/restart postgresql».
- Перезагрузите Апачи — «etc/init.d/restart apache2».
Установка PostgreSQL в Ubuntu завершена. Можете открыть утилиту. Зайдите в браузер и введите туда URL «[Ваш IP]/phppgadmin/».
Основные параметры
Дальнейшие действия зависят от условий, в которых вы планируете использовать СУБД. Если нужно подключение к сети по протоколу «TCP/IP»:
- Откройте файл конфигурации postgresql.conf. Он находится в папке «etc/postgresql/[Версия программы]/main/».
- Отыщите в нём параметр «listen_addresses = ‘localhost’»
- Замените значение localhost на «*» («звёздочку»).
- Сохраните.
Если этого не сделать, сервер СУБД будет доступен только на одном компьютере.
В программе доступны разные методы аутентификации. Лучше выбрать IDENT или MD5. Первый стоит по умолчанию. Чтобы использовать второй:
- Откройте файл pg_hba.conf. Он в каталоге «/etc/postgresql/[Версия программы]/main/».
- Найдите там параметр «local all postgres» и напечатайте рядом md5. Если такой строки нет, впишите её.
Использование
Руководство по использованию можно скачать прямо из терминала. Введите в «apt-get install postgresql-doc-[Версия утилиты]». Вот некоторые важные команды:
- Доступ к консоли управления — «-u postgres psql» (вначале напишите sudo, если нужны root-права). Её отключение и выход — «/q».
- Добавление роли/пользователя — напишите в терминале «createuser —interactive». Система попросит ввести желаемое имя. Потом спросит, давать ли ему права суперюзера. Нажмите Y, если согласны, или N, если не согласны.
- Добавление базы данных — «createdb [Имя пользователя]».
- Чтобы посмотреть на эту БД, зайдите в аккаунт юзера, для которого она создана — «sudo su [Имя]». И активируйте консоль управления — psql.
Скрипт задаст лишь два вопроса, имя новой роли и нужно ли делать ее суперпользователем.
Работа с таблицами
- Добавление таблицы — «CREATE TABLE [Название таблицы]».
- После этой команды в скобках напишите параметры сетки «[Название строки] [Тип] ([Количество позиций]) [Возможные ограничения]». Таким образом введите несколько строк, разделяя их запятыми. После каждой нажимайте Enter. У колонок могут быть разные названия и типы. Когда закончите записывать данные, закройте скобку и поставьте точку с запятой. Количество позиций тоже указывайте в скобках.
- Посмотреть содержимое таблицы — «d». А лучше — «SELECT * FROM [Имя]»
- Удалить её — «DROP TABLE [Название]». После этого нажмите Enter и напишите «DROP TABLE» ещё раз.
- Ввести данные — «INSERT INTO [Имя сетки] (Столбец1, Столбец2, Столбец3) VALUES (‘Запись1’, ‘Запись2’, ‘Запись3’);». В столбцы будут добавлены соответствующие записи. Можете повторять команду, чтобы вписывать новую информацию
- Удалить значение — «DELETE FROM [Название таблицы] WHERE [Название столбца] = ‘[Значение]’;».
- Новый столбец — «ALTER TABLE [Имя сетки] ADD [Имя колонки]».
- Удалить столбец — «ALTER TABLE [Таблица] DROP [Название столбца]».
Вот так и выглядит в PostgreSQL установка и настройка. Ubuntu не сложно освоить. Нужно лишь запомнить основные команды. Эта СУБД часто используется в коммерческих целях.
Подходит для веб-дизайна и создания сайтов. Поддерживает популярные языки программирования.
Установка и первичная настройка PostgreSQL на Ubuntu 16.04
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 в системный список источников:
sudo sh -c 'echo «deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main» >> /etc/apt/sources.list.d/pgdg.list'
и добавьте для него ключ
wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O — | sudo apt-key add —
Это позволит при обновлении пакетов получать наиболее свежие версии.
Шаг 2. Установка PostgreSQL
Если система установлена недавно и вы пропустили предыдущий шаг, то данный шаг можно пропустить, так как в процессе установки системы производится обновление индекса пакетов. В противном случае выполните команду:
sudo apt-get update
Эта команда произведёт обновление индекса, что позволит устанавливать свежие и актуальные пакеты.
Установка PostgreSQL из официальных репозиториев и из PPA производится одинаково. Загрузим и установим пакеты PostgreSQL и contrib (contrib предоставляет некоторый дополнительный функционал и утилиты):
sudo apt-get install postgresql postgresql-contrib
Шаг 3. Подключение к серверу баз данных
Во время установки программы в системе автоматически была создана учётная запись администратора баз данных — postgres. На данном этапе доступ к системе баз данных можно получить только через неё.
Вы можете либо переключиться в сессию учётной записи postgres и запустить там оболочку программы:
sudo su — postgres
psql
либо запустить оболочку от имени postgres без переключения сессии:
sudo -u postgres psql
Попав тем или иным способом в командную строку psql, вам необходимо знать, как из неё выйти. Это можно сделать с помощью ввода команды выхода:
q
(сокращение от quit).
Шаг 4. Создание новой роли
Если вы производили установку по инструкции, то к этому моменту в вашей СУБД есть только одна роль — postgres. Рекомендуется не использовать данную роль для работы со своими базами данных, а создавать для каждой базы новую роль (или несколько при необходимости). Для создания новой роли предусмотрены два стандартных способа:
- интерактивный режим, в котором достаточно ответить на несколько простых вопросов;
- команда для создания роли через командную строку СУБД.
Мы не будем подробно останавливаться на интерактивном режиме, так как создать роль, которая полностью удовлетворяет требованиям в большинстве случаев, мы можем всего одной простой командой (перед этим нужно находиться в режиме командной строки как было описано на Шаге 3). Не забудьте заменить username на желаемое имя пользователя, а password — на пароль для этого пользователя:
create user username with password 'password';
Имя указывается без кавычек, а пароль — в одинарных кавычках.
Шаг 5. Создание базы данных
Находясь в режиме командной строки psql, создать базу данных мы можем командой create database и указав название базы данных. Например, чтобы воздать БД с именем vscale_db, выполните команду:
create database vscale_db;
Шаг 6. Назначение прав
Созданной ранее нами роли нужно назначить права на базу данных. В большинстве проектов, где у вас будет использоваться всего один пользователь базы данных, ему будут требоваться полные права. Выдать их можно следующим образом:
grant all privileges on database vscale_db to username;
где vscale_db — название базы данных, выбранное на шаге 5, а username — имя пользователя, заданное на шаге 4.
Вся минимально требующаяся предварительная настройка завершена. Вы можете выйти из psql, введя «q».
Шаг 7. Аутентификация и начало работы с базой данных
К текущему моменту у вас есть всё необходимое для начала работы с базой данных. Чтобы подключиться к ней, запустите psql с параметрами: хост «-h localhost» (так как подключаемся к локальной базе данных), название БД «vscale_db» и имя пользователя «username»:
psql -h localhost vscale_db username
После этого вы сможете взаимодействовать с вашей базой данных: создавать таблицы, созранять в них информцию, делать выборки и т.д.