Как создать базу данных postgresql linux

Содержание
  1. Работаем с PostgreSQL через командную строку в Linux
  2. Установка PostgreSQL на Linux (Mint)
  3. PostgreSQL Подключение, Пользователи (Роли) и Базы Данных
  4. PostgreSQL создание новой роли и базы данных
  5. Включить удаленный PostgreSQL доступ для пользователей
  6. Полезные команды PostgreSQL
  7. Выбор shema psql в консоли:
  8. Sequences
  9. Развернуть базу данных PostgreSQL (Linux)
  10. I. Установить PostgreSQL
  11. II. Создать пользователя PostgreSQL
  12. Создать базу данных Postgresql
  13. Установка postgresql на Centos и Debian
  14. PostgreSQL 9.2 Начало!
  15. Сборка и установка
  16. Настройка
  17. Утилиты для работы с базой
  18. Менеджеры по работе с базой
  19. Как установить и начать использовать PostgreSQL в Ubuntu 16.04
  20. Введение
  21. Перед установкой
  22. Использование ролей и баз данных PostgreSQL
  23. Переключение на аккаунт postgres
  24. Доступ к командной строке Postgres без переключения аккаунтов
  25. Создание новой роли
  26. Создание новой базы данных
  27. Запуск командной строки Postgres с новой ролью
  28. Создание и удаление таблиц
  29. Добавление, запрос и удаление данных из таблицы
  30. Как добавлять и удалять столбцы из таблицы
  31. Как обновлять данные в таблице
  32. Заключение

Работаем с PostgreSQL через командную строку в Linux

Установка PostgreSQL на Linux (Mint)

Для подключения к базе данных PostgreSQL понадобится установленный PostgreSQL клиент:

Для установки PostgreSQL сервера:

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

Вывод команды должен быть примерно таким:

PostgreSQL Подключение, Пользователи (Роли) и Базы Данных

Логин в только что установленный postgreSQL сервер нужно производить под именем пользователя postgres:

Для подключения к базе данных PostgreSQL можно использовать команду:

Если такая команда не просит ввести пароль пользователя, то можно еще добавить опцию -W.

После ввода пароля и успешного подключения к базе данных PostgreSQL, можно посылать SQL-запросы и psql-команды.

PostgreSQL создание новой роли и базы данных

Создать новую роль c именем admin (указывайте нужное имя):

Создание новой базы данных:

Дать права роли на базу данных:

Включить удаленный PostgreSQL доступ для пользователей

Нам нужно отредактировать файл /etc/postgresql/ /main/pg_hba.conf, задав опцию md5 вместо peer.

может быть 10, 11, 12 и т.д.

После этого сделать restart PostgreSQL:

Полезные команды PostgreSQL

Выйти из клиента PostgreSQL:

\q

Показать список баз данных PostgreSQL:

\l

Показать список таблиц:

\dt

Показать список пользователей (ролей):

\du

Показать структуру таблицы:

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

Удалить базу данных:

Изменить текущую базу данных в PostgreSQL (вы не сможете переименовать или удалить текущую базу данных):

\connect db_name или более короткий alias: \c db_name

Удалить роль (пользователя):

Роль не будет удалена, если у нее есть привелегии — возникнет ошибка ERROR: role cannot be dropped because some objects depend on it .

Нужно удалить привелегии у роли, например если нужно удалить роль admin2, нужно выполнить последовательность комманд с Drop Owned:

Дать права пользователю/роли на логин ( role is not permitted to log in ):

Выбор shema psql в консоли:

Посмотреть список всех схем:

Подключиться к конкретной схеме:

Sequences

Получить имена всех созданных sequences:

Получить последнее значение sequence, которые будет присвоено новой вставляемой в таблицу записи:

Источник

Развернуть базу данных PostgreSQL (Linux)

Для установки Creatio вы можете использовать следующие конфигурации баз данных:

удаленная СУБД (рекомендуется);

локальный сервер PostgreSQL.

Если у вас уже настроен сервер PostgreSQL, то шаг I можно пропустить.

Если у вас уже есть пользователь с правами администратора для авторизации, создания и изменения баз данных, то шаг II можно пропустить.

I. Установить PostgreSQL

PostgreSQL недоступен в большинстве стандартных репозиториев. Чтобы установить PostgreSQL на Linux:

Войдите в систему как администратор (root):

Выйдите из root-сессии:

На заметку. Развертывание Creatio с отказоустойчивостью не тестировалось на PostgreSQL. Подробнее о возможности создания кластеров читайте в документации PostgreSQL .

II. Создать пользователя PostgreSQL

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

Рекомендуется создать следующих пользователей PostgreSQL:

  • Пользователь с ролью ”admin” и неограниченными полномочиями на уровне сервера базы данных — нужен для восстановления базы данных и настройки доступа к ней.
  • Обычный пользователь с ограниченными правами на уровне сервера. используется для настройки безопасного подключения Creatio к базе данных через аутентификацию средствами PostgreSQL.

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

Источник

Создать базу данных Postgresql

Прежде всего требуется подключиться к серверу по SSH.

Далее подключиться к базе от имени пользователя postgres (по умолчанию существует только он)

could not change directory to «/root»
psql (9.2.24)
Type «help» for help.

Если возникла ошибка, подобная приведенной выше — нужно перейти в любой каталог, в который postgres имеет доступ.

Оказавшись к консоли можно создать базу данных

CREATE DATABASE

Затем пользователя, которому присвоить пароль.

postgres=# CREATE USER appadmin WITH PASSWORD ‘jkfdk8H0Indgshy6hk’;

CREATE ROLE

Пользователи в PostgreSQL являются ролями. Для определенной базы созданному пользователю задаются нужные привилегии.

Например, полный доступ:

postgres=# GRANT ALL PRIVILEGES ON DATABASE app to appadmin;

GRANT

Также требуется скорректировать значения в одном из конфигурационных файлов

Читайте также:  Как узнать какая у меня windows x32 или x64

В файле содержится информация о методах аутентификации. Изначально работа с базой возможна только в случае если подключение выполняет системный пользователь с именем идентичным пользователю сервера баз данных.

На практике это обычно неудобно и требуется подключение с реквизитами специально созданного пользователя, по установленному паролю.

В файле потребуется заменить в двух строках, начинающихся с host тип аутентификации с ident на md5. Это последнее значение в каждой строке.

# TYPE DATABASE USER ADDRESS METHOD

# «local» is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
#host all all 127.0.0.1/32 ident
host all all 127.0.0.1/32 md5
# IPv6 local connections:
#host all all ::1/128 ident
host all all ::1/128 md5

Для вступления в силу изменений нужно перезапустить сервис

Установка postgresql на Centos и Debian

Если postgresql на сервере еще нет, его нужно установить.

Centos 7

yum install postgresql-server postgresql-devel postgresql-contrib

Debian 9

После установки на CentOS требуется выполнить начальную настройку. Скрипт подобен mysql_secure_instalation в MySQL.

Initializing database … OK

Для Debian / Ubuntu сервис запускается автоматически, для Centos его нужно стартовать и добавить в автозагрузку

Если сайт, работающий с Postgresql переносится на другой сервер — требуется создать, а потом развернуть на другой машине дамп базы.

Источник

PostgreSQL 9.2 Начало!

Мне хотелось создать прекрасный объемлющий мануал Getting Start без всякой воды, но включающий основные плюшки для начинающих по системе PostgreSQL в Linux.

PostgreSQL является объектно-реляционной системой управления базами данных (ОРСУБД) на основе POSTGRES, версия 4.2, разработанной в Университете Калифорнии в Беркли департаменте компьютерных наук.

PostgreSQL является open source потомком оригинального кода Berkeley. Он поддерживает большую часть стандарта SQL и предлагает множество современных функций:

Сборка и установка

Как и все любители мейнстрима PostgreSQL мы будем конечно же собирать, а не скачивать готовые пакеты (в репозитариях Debian, например, нет последней версии). Вот здесь лежит множество версий, скачивать конечно же лучше всего последнюю. На момент написания поста это версия 9.2.2

Теперь у нас есть директория с исходниками сей прекрасной базы данных.
По умолчанию файлы базы будут установлены в директорию /usr/local/pgsql, но эту директорию можно изменить задав

перед командой ./configure
Перед сборкой можно указать компилятор С++

PostgeSQL может использовать readline библиотеку, если у вас её нет и нет желания её ставить просто укажите опцию

Надеюсь у всех есть Autotools? Тогда вперед к сборке:

Все господа! Поздравляю!

Настройка

Нам необходимо указать хранилище данных наших баз данных (кластер) и запустить её.

Есть один нюанс — владельцем директории данных и пользователь, который может запускать базу должен быть не root. Это сделано в целях безопасности системы. Поэтому создадим специального пользователя

И далее все понятно

Важный процесс. Мы должны инициализировать кластер баз дынных. Сделать мы должны это от имени пользователя postgres

Теперь нужно добавить запуск PostgreSQL в автостарт. Для этого существует уже готовый скрипт и лежит он в postgresql-9.2.2/contrib/start-scripts/linux
Этот файл можно открыть и обратить внимание на следующие переменные:

  • prefix — это место куда мы ставили PostgreSQL и задавали в ./configure
  • PGDATA — это то, где хранится кластер баз данных и куда должен иметь доступ наш пользователь postgres
  • PGUSER — это тот самый пользователь, от лица которого будет все работать

Если все стоит верно, то добвляем наш скрипт в init.d

Перезапускам систему, чтобы проверить что наш скрипт работает.
Вводим

И если появится окно работы с базой, то настройка прошла успешно! Поздравляю!
По умолчанию создается база данных с именем postgres

Теперь важно поговорить о методах авторизации.
В /usr/local/pgsql/data/pg_hba.conf как раз есть необходимые для этого настройка

Первая строка отвечает за локальное соединение, вторая — за соединение про протоколу IPv4, а третья по протоколу IPv6.
Самый последний параметр — это как раз таки метод авторизации. Его и рассмотрим (только основные)

  • trust — доступ к базе может получить кто угодно под любым именем, имеющий с ней соединение.
  • reject — отклонить безоговорочно! Это подходит для фильтрации определенных IP адресов
  • password — требует обязательного ввода пароля. Не подходит для локальных пользователей, только пользователи созданные командой CREATE USER
  • ident — позволяет только пользователем зарегистрированным в файле /usr/local/pgsql/data/pg_ident.conf устанавливать соединение с базой.

Вкратце расскажу об основных утилитах, которые пригодятся в работе.

Утилиты для работы с базой

pg_config

Возвращает информацию о текущей установленной версии PostgreSQL.

initdb

Инициализирует новое хранилище данных (кластер баз данных). Кластер представляет собой совокупность баз данных управляемых одним экземпляром севера. initdb должен быть запущен от имени будущего владельца сервера (как указано выше от имени postgres).

pg_ctl

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

psql

Клиент для работы с базой дынных. Позволяет выполнять SQL операции.

createdb
dropdb

Удаляет базу данных. Является оберткой SQL команды DROP DATABASE.

createuser
dropuser

Удаляет пользователя базы данных. Является оберткой SQL команды DROP ROLE.

Читайте также:  Проект по brainflayer для windows 10
createlang
droplang

Удаляет язык программирования. Является оберткой SQL команды DROP LANGUAGE.

pg_dump
pg_restore
pg_dumpall

Создает бэкап (дамп) всего кластера в файл.

reindexdb

Производит переиндексацию базы данных. Является оберткой SQL команды REINDEX.

clusterdb

Производит перекластеризацию таблиц в базе данных. Является оберткой SQL команды CLUSTER.

vacuumdb

Сборщик мусора и оптимизатор базы данных. Является оберткой SQL команды VACUUM.

Менеджеры по работе с базой

Что касается менеджера по работа с базой, то есть php менеджер — это phpPgAdmin и GUI менеджер pgAdmin. Должен заметить, что они оба плохо поддерживают последнюю версию PostgreSQL.

Источник

Как установить и начать использовать PostgreSQL в Ubuntu 16.04

Published on March 21, 2017

Введение

Системы управления реляционными базами данных являются ключевым компонентом работы многих веб-сайтов и приложений. Они предоставляют средство структурированного хранения, организации и доступа к информации.

PostgreSQL или Postgres — это система управления реляционной базой данных, предоставляющая реализацию языка запросов SQL. Это популярный выбор для множества больших и малых проектов. Postgres также имеет преимущество соответствия стандартам (в том числе SQL), и, кроме того, обладает множеством продвинутых возможностей, например, надёжные транзакции (reliable transactions) и параллелизм без блокировки чтения (concurrency without read locks).

В этой статье мы продемонстрируем, как установить Postgres на виртуальный сервер с Ubuntu 16.04, а также осветим несколько простых сценариев его использования.

Перед установкой

Стандартные репозитории Ubuntu содержат пакеты Postgres, поэтому для установки мы будем использовать пакетный менеджер apt .

Сначала обновим локальный список пакетов. Далее мы установим пакет Postgres и пакет -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 перед вашими командами и не переключаться между пользователями, вы можете сделать это следующим образом:

Этот скрипт задаст вам несколько вопросов, и, в зависимости от ваших ответов, выполнит необходимые команды Postgres для создания желаемого аккаунта пользователя.

Вы можете использовать дополнительные флаги при выполнении этой команды. Ознакомиться с полным списком флагов можно изучив страницу man :

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

Ещё одно допущение, которое делает Postgres, заключается в том, что для каждой роли, которая была использована для входа, необходимо создать базу данных с тем же именем, что и имя роли, к которой можно будет осуществлять доступ с помощью этой роли.

Поэтому для созданного нами ранее пользователя с именем sammy соответствующая роль будет по умолчанию пытаться соединиться с базой данных sammy . Вы можете создать эту базу данных с помощью команды createdb .

Если вы вошли с использованием аккаунта postgres , вам необходимо ввести нечто такое:

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

Запуск командной строки Postgres с новой ролью

Для использования идентичной аутентификации (ident authentication) вам необходимо иметь пользователя Linux с тем же именем, что и имя роли и базы данных Postgres.

Если у вас нет такого пользователя, вы можете создать его с помощью команды adduser . Для этого вам потребуется аккаунт с привилегиями sudo (вы не сможете использовать для этого пользователя postgres ):

Читайте также:  Образы linux для usb

После создания пользователя вы можете сменить пользователя и зайти в Postgres командами:

Или вы можете сделать это следующим образом:

Вы автоматически войдёте в Postgres, если все компоненты были сконфигурированы правильным образом (как описано выше).

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

После осуществления входа вы можете проверить информацию о текущем подключении командой:

Эта информация может быть полезна при подключении к базам данных и с использованием пользователей, отличных от созданных по умолчанию.

Создание и удаление таблиц

Теперь, когда вы знаете, как осуществлять доступ к СУБД Postgres, мы можем кратко рассмотреть вопрос выполнения некоторых распространённых задач в Postgres.

Для начала создадим таблицу для хранения данных. Давайте создадим таблицу, которая описывает параметры инвентаря детской площадки.

Базовый синтаксис для этой команды выглядит примерно так:

Как видно из этого примера, вы задаём имя таблицы и затем определяем необходимые столбцы, их тип и максимальную длину хранимых значений. Мы также можем добавлять ограничения на значения в каждом из столбцов.

Для целей нашего примера мы создадим простую таблицу:

Мы создали таблицу для инвентаря детской площадки. Первый столбец содержит идентификатор инвентаря с типом serial . Это целочисленный тип данных с автоинкрементом. Мы задали этот столбец с параметром первичного ключа ( primary key ), что означает, что все значения должны быть ненулевыми и уникальными.

Для двух наших столбцов ( equip_id и install_date ) мы не задали максимальную длину значений. Некоторые типы столбцов не требует задания максимальной длины значения, потому что длина определяется типом данных в этом столбце.

Кроме того мы создали столбцы type и color , которые не могут быть пустыми. Мы также создали столбец location и настроили его таким образом, что его значение может принимать одно из восьми заданных значений. Последний столбец задаёт дату установки данной единицы инвентаря детской площадки.

Мы можем убедиться, что таблица создана, следующей командой:

Наша таблица на месте, но помимо неё у нас теперь есть и нечто под названием playground_equip_id_seq с типом sequence . Это нечто представляет собой реализацию типа serial , который мы задали для столбца equip_id . Таким образом Postgres будет следить за следующим номером в последовательности идентификаторов, эта связь создаётся автоматически для столбцов данного типа.

Если вы хотите увидеть список только таблиц, без объектов-последовательностей, вы можете набрать следующую команду:

Добавление, запрос и удаление данных из таблицы

Теперь, когда у нас есть таблица, мы можем добавить в неё данные.

Сначала добавим горку (slide) и качели (swing). Для того, чтобы это сделать, нам необходимо указать имя таблицы, названия столбцов, а также сами данные:

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

Также надо иметь в виду, что мы не указываем значения для столбца equip_id . Это значение будет задаваться автоматически при добавление новой записи в таблицу.

Мы можем просмотреть добавленные данные следующей командой:

Как видно из этого консольного вывода, наше поле equip_id было успешно заполнено автоматически, а остальные поля также получили корректные значения.

Если горка на нашей детской площадке сломалась и нам необходимо её убрать, мы можем удалить эту запись из нашей базы следующей командой:

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

Как добавлять и удалять столбцы из таблицы

При необходимости мы можем легко добавить дополнительные столбцы и после создания таблицы.

Для примера добавим в нашу таблицу столбец, содержащий информацию о дате последнего осмотра единицы инвентаря детской площадки:

Теперь если мы выведем содержимое таблицы, мы увидим, что новый столбец был добавлен (но существующие записи не содержат никаких значений в этом столбце):

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

Как обновлять данные в таблице

Мы уже знаем, как добавлять записи в таблицу и как удалять их из таблицы. Теперь мы рассмотрим вопрос изменения существующих в таблице записей.

Вы можете обновлять значения существующих записей путём выборки необходимых записей и установки значений необходимых столбцов. Например, мы можем найти все записи для качелей (swing) и изменить их цвет на красный, потому что ранее мы покрасили все качели на нашей детской площадке в красный цвет:

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

Как видите, теперь наши качели красного цвета.

Заключение

Теперь у вас есть установленный и настроенный PostgreSQL на вашем сервере с Ubuntu 16.04. Тем не менее, полученных нами знаний не достаточно для полноценной работы с Postgres. Мы рекомендуем ознакомиться с этими статьями о работе с данной СУБД:

Источник

Оцените статью