Я хотел создать замечательное, всеобъемлющее руководство по началу работы без каких-либо излишеств, но включающее в себя базовые полезные сведения для новичков в системе PostgreSQL в Linux. PostgreSQL — это объектно-реляционная система управления базами данных (ORDBMS), основанная на ПОСТГРЕС версии 4.2 , разработанный на факультете компьютерных наук Калифорнийского университета в Беркли.
PostgreSQL — это потомок исходного кода Беркли с открытым исходным кодом.
Он поддерживает большую часть стандартов SQL и предлагает множество современных функций:
- Сложные запросы
- Внешние ключи
- Триггеры
- Производительность
- Транзакционная целостность
- Управление параллелизмом с использованием нескольких версий
- типы данных
- функции
- операторы
- агрегатные функции
- указатель методов
- процедурные языки
Сборка и установка
Как и все поклонники мейнстрима PostgreSQL, мы, конечно, будем собирать, а не скачивать готовые пакеты (в репозиториях Debian, например, нет последней версии).Здесь Здесь Версий много, конечно лучше скачать самую последнюю.
На момент написания этого поста это версия 9.2.2.
Теперь у нас есть каталог с исходниками этой замечательной базы данных.wget http://ftp.postgresql.org/pub/source/v9.2.2/postgresql-9.2.2.tar.gz tar xzf postgresql-9.2.2.tar.gz
По умолчанию файлы базы данных будут установлены в каталог /usr/local/pgsql, но этот каталог можно изменить, установив --prefix=/path/to/pgsql
перед командой .
/configure Перед сборкой вы можете указать компилятор C++.
export CC=gcc
PostgeSQL может использовать линия чтения библиотека, если у вас ее нет и вы не хотите ее устанавливать, просто укажите опцию --without-readline
Я надеюсь, что это есть у всех Автоинструменты ? Тогда вперёд на сборку: cd postgresql-9.2.2
.
/configure --without-readline
sudo make install clean
Все господа! Поздравляем!
Настройки
Нам необходимо указать хранилище данных нашей базы данных (кластер) и запустить его.Есть один нюанс — владелец каталога данных и пользователь, который может запускать базу данных, не должны быть root. Это сделано в целях безопасности системы.
Поэтому давайте создадим специального пользователя sudo useradd postgres -p postgres -U -m
И тогда все ясно sudo chown -R postgres:postgres /usr/local/pgsql
Важный процесс.
Мы должны инициализировать кластер базы данных.
Мы должны сделать это от имени пользователя postgres. initdb -D /usr/local/pgsql/data
Теперь нужно добавить в автозапуск запуск PostgreSQL. Для этого есть готовый скрипт и он находится в postgresql-9.2.2/contrib/start-scripts/linux
Вы можете открыть этот файл и обратить внимание на следующие переменные:
- префикс — это место, куда мы установили PostgreSQL и указали его в .
/configure
- ПГДАТА — здесь хранится кластер базы данных и куда наш пользователь postgres должен иметь доступ
- PGUSER - это тот самый пользователь, от имени которого все будет работать
sudo cp .
/postgresql-9.2.2/contrib/start-scripts/linux /etc/init.d/postgres
sudo update-rc.d postgres defaults
Перезапускаем систему, чтобы проверить работу нашего скрипта.
Входить /usr/local/pgsql/bin/psql -U postgres
И если появится окно работы с базой данных, значит настройка прошла успешно! Поздравляем!
По умолчанию создается база данных с именем postgres.
Теперь важно поговорить о методах авторизации.
/usr/local/pgsql/data/pg_hba.conf содержит необходимые для этого настройки # TYPE DATABASE USER ADDRESS METHOD
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
Первая строка отвечает за локальное соединение, вторая — за соединение IPv4, третья — за протокол IPv6.
Самый последний параметр — это как раз метод авторизации.
Давайте рассмотрим (только основные)
- доверять — доступ к базе данных может получить любой человек под любым именем, имеющий к ней подключение.
- отклонять - отказаться безоговорочно! Подходит для фильтрации определенных IP-адресов.
- пароль - требует пароль.
Не подходит для локальных пользователей, только пользователи, созданные с помощью команды CREATE USER.
- личность — позволяет только пользователю, зарегистрированному в файле /usr/local/pgsql/data/pg_ident.conf, устанавливать соединение с базой данных.
Утилиты для работы с базой данных
pg_config
Возвращает информацию об установленной в данный момент версии PostgreSQL.initdb
Инициализирует новое хранилище данных (кластер базы данных).Кластер — это совокупность баз данных, управляемых одним экземпляром сервера.
initdb должен быть запущен от имени будущего владельца сервера (как указано выше как postgres).
pg_ctl
Управляет процессом сервера PostgreSQL. Позволяет запускать, перезапускать, останавливать сервер, указывать файл журнала и многое другое.
psql
Клиент для работы с базой данных.
Позволяет выполнять операции SQL.
созданоb
Создает новую базу данных.По умолчанию база данных создается от имени пользователя, выполнившего команду.
Однако, чтобы указать другой, вы должны использовать опцию -O (если у пользователя есть необходимые для этого права).
По сути, это SQL-оболочка для команды CREATE DATABASE.
DropDB
Удаляет базу данных.
Это SQL-оболочка для команды DROP DATABASE.
Создать пользователя
Добавляет нового пользователя базы данных.
Это SQL-оболочка для команды CREATE ROLE.
Dropuser
Удаляет пользователя базы данных.
Это SQL-оболочка для команды DROP ROLE.
Создатьланг
Добавляет новый язык программирования в базу данных PostgreSQL. Это SQL-оболочка для команды CREATE LANGUAGE.дропланг
Удаляет язык программирования.
Это SQL-оболочка для команды DROP LANGUAGE.
pg_dump
Создает резервную копию (дамп) базы данных в файл.
pg_restore
Восстанавливает резервную копию базы данных (дамп) из файла.
pg_dumpall
Создает резервную копию (дамп) всего кластера в файл.
переиндексдб
Переиндексирует базу данных.
Это SQL-оболочка для команды REINDEX.
кластерная база данных
Перекластеризует таблицы в базе данных.
Это SQL-оболочка для команды CLUSTER.
вакуумдб
Сборщик мусора и оптимизатор базы данных.
Это SQL-оболочка для команды VACUUM.
Менеджеры баз данных
Что касается менеджера по работе с базой данных, то есть php-менеджер phpPgAdmin и менеджер графического интерфейса pgAdmin .Должен отметить, что они оба плохо поддерживают последнюю версию PostgreSQL. P.S Если я что-то забыл, скажите, и я добавлю.
Теги: #postgresql #postgresql
-
Что Такое Нишевый Маркетинг?
19 Oct, 24 -
Вы Заметили?
19 Oct, 24 -
Url-Адрес Идентификации
19 Oct, 24 -
Как Вы Используете Скайп?
19 Oct, 24 -
Вебинары От Digital Security
19 Oct, 24 -
Анализ Локальных Функций В C# 7
19 Oct, 24