Как установить postgresql — решения для windows, mac os x, linux
Содержание:
- Настройка кластера и клиента
- Роли и методы аутентификации PostgreSQL
- Как добавлять и удалять столбцы из таблицы
- Создайте пользователя csadmin
- Какие параметры требуют перезапуск сервера?
- Пароль
- Установите PostgreSQL в Ubuntu
- PostgreSQL packages for Debian and Ubuntu
- Проверка репликации
- Создание кластера БД
- Шаг 7 — Добавление, запрос и удаление данных в таблице
- Удаление
- Шаг 2 — Использование ролей и баз данных в PostgreSQL
- Создание и удаление таблиц
- Настройка Vault
- Вы здесь
- 14 команд для управления PostgreSQL
- Создание роли и базы данных PostgreSQL
- Запустите установку
- Создание и удаление таблиц
- Создание ролей PostgreSQL
- 6: Создание и удаление таблиц
- 2: Создание кластера PostgreSQL
- Дополнительная настройка
- Включить удаленный доступ к серверу PostgreSQL
Настройка кластера и клиента
На любой компьютер в сети установим толстый клиент 1С:Предприятие той же версии, что и сервер. Во время установки обязательно выбираем компонент Администрирование сервера 1С:Предприятие:
Устанавливаем клиента 1С. После установки в меню пуск находим ссылку Регистрация утилиты администрирования серверов (версия) и запускаем ее от имени администратора:
Теперь запускаем утилиту Администрирование серверов 1С Предприятия:
В открывшемся окне кликаем правой кнопкой мыши по Central 1C:Enterprise 8.3 servers — выбираем Создать — Центральный сервер 1С:Предприятие 8.3:
Пишем имя сервера 1С или его IP-адрес:
… и нажимаем OK. В панели управления появится подключение — переходим в раздел Кластеры — Локальный кластер — кликаем правой кнопкой по Информационные базы — выбираем Создать — Информационная база:
Заполняем параметры для создания новой базы:
* в данном примере нами были заполнены:
- Имя — задаем произвольное имя для подключения к базе.
- Сервер баз данных — имя или IP-адрес базы. Задаем localhost, так как в нашем случае сервер 1С и сервер баз данных находятся на одном сервере.
- Тип СУБД — выбираем PostgreSQL.
- База данных — имя базы данных.
- Пользователь сервера БД — пользователь, под которым будет выполняться подключение к базе. В нашем примере postgres.
- Пароль пользователя БД — пароль для базы, который мы задали после установки СУБД.
- Создать базу данных в случае ее отсутствия — ставим галочку, чтобы база была создана.
Если мы получим ошибку Этот хост неизвестен:
… необходимо убедиться, что имя сервера разрешается в IP-адрес. Для этого необходимо его добавить в локальную DNS или файл hosts.
База должна создастся. Теперь запускаем 1С клиент и добавляем новую базу — при добавлении выбираем Добавление в список существующей информационной базы:
Указываем произвольное имя информационной базы, а также выбираем тип расположения базы На сервере 1С:Предприятия:
Нажимаем Далее и Готово. Запускаем конфигуратор, загружаем базу и пользуемся.
Роли и методы аутентификации PostgreSQL
Разрешения на доступ к базе данных в PostgreSQL обрабатываются с помощью концепции ролей. Роль может представлять пользователя базы данных или группу пользователей базы данных.
- Доверие — с помощью этого метода роль может подключаться без пароля, если соблюдаются критерии, определенные в .
- Пароль — роль может подключиться, указав пароль. Пароли могут быть сохранены как и (открытый текст)
- Ident — этот метод поддерживается только для соединений TCP / IP. Работает путем получения имени пользователя операционной системы клиента с необязательным отображением имени пользователя.
- Peer — То же, что и Ident, но поддерживается только для локальных подключений.
Аутентификация клиента PostgreSQL определяется в файле конфигурации с именем . По умолчанию для локальных подключений PostgreSQL настроен на использование метода одноранговой аутентификации.
Пользователь создается автоматически при установке PostgreSQL. Этот пользователь является суперпользователем для экземпляра PostgreSQL и эквивалентен корневому пользователю MySQL.
Чтобы войти на сервер PostgreSQL как пользователь postgres, сначала вам нужно переключиться на пользователя postgres, а затем вы можете получить доступ к приглашению PostgreSQL с помощью утилиты :
Отсюда вы можете взаимодействовать со своим экземпляром PostgreSQL. Чтобы выйти из оболочки PostgreSQL, введите:
Вы также можете получить доступ к командной строке PostgreSQL, не переключая пользователей, с помощью команды :
Пользователь обычно используется только с локального хоста, и не рекомендуется устанавливать пароль для этого пользователя.
Как добавлять и удалять столбцы из таблицы
При необходимости мы можем легко добавить дополнительные столбцы и после создания таблицы.
Для примера добавим в нашу таблицу столбец, содержащий информацию о дате последнего осмотра единицы инвентаря детской площадки:
Теперь если мы выведем содержимое таблицы, мы увидим, что новый столбец был добавлен (но существующие записи не содержат никаких значений в этом столбце):
Мы также легко можем и удалять столбцы. Например, если наш ремонтный отдел использует отдельный инструмент для отслеживания истории технического обслуживания инвентаря нашей площадки, мы можем удалить созданный ранее столбец следующим образом:
Создайте пользователя csadmin
Для PostgreSQL установки и настройки в командной строке psql (заканчивающейся на #) переключитесь с базы данных template1 на postgres, введя следующее:
c postgres
Введите следующую команду, чтобы создать пользователя csadmin с соответствующими привилегиями. Не забудьте заменить пароль replacemewithyourpassword в приведенном ниже примере на пароль по вашему выбору.
CREATE ROLE csadmin LOGIN PASSWORD ‘replacemewithyourpassword’ SUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
В результате вы должны увидеть сообщение, подобное этому: CREATE ROLE.
Закройте программу psql, введя q (или нажав Ctrl + d).
Теперь перезапустите сервер PostgreSQL еще раз (как описано выше).
Какие параметры требуют перезапуск сервера?
Чтобы это выяснить нужно посмотреть все параметры у которых context = postmaster:
postgres@postgres=# SELECT name, setting, unit FROM pg_settings WHERE context = 'postmaster'; name | setting | unit -------------------------------------+---------------------------------------+------ archive_mode | off | autovacuum_freeze_max_age | 200000000 | autovacuum_max_workers | 3 | autovacuum_multixact_freeze_max_age | 400000000 | bonjour | off | bonjour_name | | cluster_name | | config_file | /usr/local/pgsql/data/postgresql.conf | data_directory | /usr/local/pgsql/data | data_sync_retry | off | dynamic_shared_memory_type | posix | event_source | PostgreSQL | external_pid_file | | hba_file | /usr/local/pgsql/data/pg_hba.conf | hot_standby | on | huge_pages | try | ident_file | /usr/local/pgsql/data/pg_ident.conf | ignore_invalid_pages | off | jit_provider | llvmjit | listen_addresses | localhost | logging_collector | off | max_connections | 100 | max_files_per_process | 1000 | max_locks_per_transaction | 64 | max_logical_replication_workers | 4 | max_pred_locks_per_transaction | 64 | max_prepared_transactions | 0 | max_replication_slots | 10 | max_wal_senders | 10 | max_worker_processes | 8 | old_snapshot_threshold | -1 | min port | 5432 | recovery_target | | recovery_target_action | pause | recovery_target_inclusive | on | recovery_target_lsn | | recovery_target_name | | recovery_target_time | | recovery_target_timeline | latest | recovery_target_xid | | restore_command | | shared_buffers | 16384 | 8kB shared_memory_type | mmap | shared_preload_libraries | | superuser_reserved_connections | 3 | track_activity_query_size | 1024 | B track_commit_timestamp | off | unix_socket_directories | /tmp | unix_socket_group | | unix_socket_permissions | 0777 | wal_buffers | 512 | 8kB wal_level | replica | wal_log_hints | off | (53 rows) Time: 0,666 ms
Сводка
Имя статьи
PostgreSQL. Конфигурирование
Описание
Сервер баз данных PostgreSQL имеет очень много параметров с помощью которых его можно настроить под любые нужды. В этой статье мы не будет рассматривать все эти параметры. Здесь мы посмотрим на различные способы настройки этого сервера.
Пароль
Введите и подтвердите пароль, который будет использоваться для учётной записи суперпользователя (postgres) в базе данных кластера. (примеч: PostgreSQL в Windows работает не от администратора, а от имени учётной записи пользователя, имя которого «postgres». Сделано это было прежде всего из соображений безопасности, чтобы никакие вредители системы не смогли получить права администратора, даже если они каким-то образом найдут уязвимость в безопасности самого PostgreSQL. Далее. В самой СУБД PostgreSQL есть такой специальный пользователь — суперпользователь, который имеет максимальные права внутри СУБД PostgreSQL, т.н. может создавать или удалять любые базы данных и любых пользователей. Этот суперпользователь тоже имеет имя пользователя «postgres». Но, несмотря на то, что имена пользователей учётной записи в Windows и суперпользователя PostgreSQL абсолютно одинаковы — это абсолютно разные пользователи, абсолютно никаким образом не связанные друг с другом. Но для того, чтобы вы потом не путались с разными паролями, вам предлагают задать один и тот же пароль для них ОБОИХ.) В Windows, этот пароль также используется для учётной записи службы «postgres» и должен соответствовать текущему паролю в том случае, если учётная запись суперпользователя уже существует. (примеч: Если учётная запись службы уже существует в Windows, вы должны ввести текущий пароль этой учётной записи. Если данная учётная запись не существует, она будет создана.) Вы можете изменить пароль суперпользователя независимо от пароля учётной записи службы «postgres» в любое время после установки
Обратите внимание, что эта страница не будет показана на Linux или Mac, если вы повторно используете существующий каталог с данными.
Установите PostgreSQL в Ubuntu
На момент написания этой статьи последней версией PostgreSQL, доступной в официальных репозиториях Ubuntu, была PostgreSQL версии 10.4.
Выполните следующие команды, чтобы установить сервер PostgreSQL в Ubuntu:
Мы также устанавливаем пакет Contrib PostgreSQL, который предоставляет несколько дополнительных функций для системы баз данных PostgreSQL.
После завершения установки служба PostgreSQL запустится автоматически. Используйте инструмент для проверки установки, подключившись к серверу базы данных PostgreSQL и распечатав его версию :
Вот и все. PostgreSQL установлен, и вы можете начать его использовать.
PostgreSQL packages for Debian and Ubuntu
Currently, we support
- Debian 9 (stretch), 10 (buster), 11 (bullseye), 12 (bookworm), and unstable (sid)
- Ubuntu 18.04 (bionic), 20.04 (focal), 21.04 (hirsute, amd64 only), 21.10 (impish, amd64 only)
- Architectures: amd64 (64-bit x86), i386 (32-bit x86, being phased out), arm64 (64-bit ARM), ppc64el (little-endian 64-bit POWER)
- PostgreSQL 9.6, 10, 11, 12, 13, ,
- Server extensions such as Slony-I, various PL languages, and datatypes
- Applications like omnidb, pgbouncer, and pgpool-II
Packages for older PostgreSQL versions and older Debian/Ubuntu distributions will continue to stay in the repository (or be moved to apt-archive.postgresql.org), but will usually not be updated anymore.
Проверка репликации
Посмотреть статус
Статус работы репликации можно посмотреть следующими командами.
На мастере:
=# select * from pg_stat_replication;
На слейве:
=# select * from pg_stat_wal_receiver;
Создать тестовую базу
На мастере заходим в командную оболочку Postgre:
su — postgres -c «psql»
Создаем новую базу данных:
=# CREATE DATABASE repltest ENCODING=’UTF8′;
Теперь на вторичном сервере смотрим список баз:
su — postgres -c «psql»
=# \l
Мы должны увидеть среди баз ту, которую создали на первичном сервере:
Name | Owner | Encoding | Collate | Ctype | Access
————+———-+———-+————-+————-+——————
…
repltest | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 |
…
Создание кластера БД
Дальнейшие действия нужно проделывать под пользователем postgres
# su - postgres
Инициализируем кластер баз данных:
postgres@s-pg13:~$ initdb -k
Опцию -k мы использовали, чтобы включить подсчет контрольной суммы страниц, что позволяет своевременно обнаружить повреждение данных. Остальные опции можете посмотреть тут!
После инициализации кластера у нас заполнился каталог PGDATA:
postgres@s-pg13:~$ ls /usr/local/pgsql/data/ base pg_commit_ts pg_hba.conf pg_logical pg_notify pg_serial pg_stat pg_subtrans pg_twophase pg_wal postgresql.auto.conf global pg_dynshmem pg_ident.conf pg_multixact pg_replslot pg_snapshots pg_stat_tmp pg_tblspc PG_VERSION pg_xact postgresql.conf
В этом каталоге лежат конфигурационные файлы кластера, и в подкаталоге base лежат базы данных. Но о содержимом этого каталога мы поговорим позже.
Шаг 7 — Добавление, запрос и удаление данных в таблице
Теперь, когда у вас есть таблица, вы можете ввести в нее данные .
В качестве примера добавьте строги swing (качели) и slide (горка), вызвав таблицу, куда вы хотите добавить данные, указав столбцы и предоставив данные для каждого столбца:
Вы должны быть внимательны при вводе данных, чтобы не допустить нескольких общих проблем. Во-первых, оборачивайте в кавычки не названия столбцов, а значения в столбцах.
Еще один момент, который необходимо учитывать, состоит в том, что вы не должны указывать значения для столбца . Это объясняется тем, что они автоматически генерируются всякий раз, когда в таблице создается новая строка.
Получите добавленную вами информацию, введя следующую команду:
Вы можете убедиться, что столбец уже заполнен успешно, а все другие данные были организованы корректно.
Если же строка slide в таблице разрывается, вы можете удалить строку из таблицы, использовав следующую команду:
Запросите таблицу еще раз:
Вы видите, что ваш строка slide уже не является частью таблицы.
Удаление
Если вам нужно удалить PostgreSQL, то вы можете запустить деинсталлятор, который создаётся в любое время в процессе установки
Обратите внимание, что деинсталлятор никогда не приведёт к удалению каталога с вашими данными или учётной записи службы «postgres». Вы можете найти деинсталлятор в каталоге куда был установлен сервер PostgreSQL и можете запускать деинсталлятор также как вы запускали программу установки
Здесь, как правило, не требуются параметры-ключи в командной строке. В Windows вы можете также запустить программу удаления через «Установка/Удаление программ» из апплета панели управления.
Шаг 2 — Использование ролей и баз данных в PostgreSQL
По умолчанию Postgres использует концепцию «ролей» для выполнения аутентификации и авторизации. В некоторых аспектах они аналогичны обычным пользователям и группам в Unix.
После установки Postgres настроена на использование аутентификации ident, что значит, что выполняется привязка ролей Postgres с соответствующей системной учетной записью Unix/Linux. Если роль существует внутри Postgres, пользователь Unix/Linux с тем же именем может выполнить вход в качестве этой роли.
В ходе установки была создана учетную запись пользователя postgres, которая связана с используемой по умолчанию ролью postgres. Существует несколько способов использования этой учетной записи для доступа к Postgres. Один из способов — переход к учетной записи postgres на вашем сервере с помощью следующей команды:
Затем вы можете получить доступ к командной строке Postgres с помощью команды:
В результате вы можете получить доступ к командной строке PostgreSQL, а уже отсюда свободно взаимодействовать с системой управления базами данных.
Для выхода из командной строки PostgreSQL выполните следующую команду:
В результате вы вернетесь в командную строку в Linux.
Также вы можете запустить необходимую вам команду с учетной записью postgres напрямую с помощью :
Это позволит выполнить вход в Postgres без необходимости использования промежуточной командной строки .
Вы снова сможете выйти из интерактивного сеанса Postgres с помощью следующей команды:
Создание и удаление таблиц
Теперь, когда вы знаете, как осуществлять доступ к СУБД Postgres, мы можем кратко рассмотреть вопрос выполнения некоторых распространённых задач в Postgres.
Для начала создадим таблицу для хранения данных. Давайте создадим таблицу, которая описывает параметры инвентаря детской площадки.
Базовый синтаксис для этой команды выглядит примерно так:
Как видно из этого примера, вы задаём имя таблицы и затем определяем необходимые столбцы, их тип и максимальную длину хранимых значений. Мы также можем добавлять ограничения на значения в каждом из столбцов.
Для целей нашего примера мы создадим простую таблицу:
Мы создали таблицу для инвентаря детской площадки. Первый столбец содержит идентификатор инвентаря с типом . Это целочисленный тип данных с автоинкрементом. Мы задали этот столбец с параметром первичного ключа (), что означает, что все значения должны быть ненулевыми и уникальными.
Для двух наших столбцов ( и ) мы не задали максимальную длину значений. Некоторые типы столбцов не требует задания максимальной длины значения, потому что длина определяется типом данных в этом столбце.
Кроме того мы создали столбцы и , которые не могут быть пустыми. Мы также создали столбец и настроили его таким образом, что его значение может принимать одно из восьми заданных значений. Последний столбец задаёт дату установки данной единицы инвентаря детской площадки.
Мы можем убедиться, что таблица создана, следующей командой:
Наша таблица на месте, но помимо неё у нас теперь есть и нечто под названием с типом . Это нечто представляет собой реализацию типа , который мы задали для столбца . Таким образом Postgres будет следить за следующим номером в последовательности идентификаторов, эта связь создаётся автоматически для столбцов данного типа.
Если вы хотите увидеть список только таблиц, без объектов-последовательностей, вы можете набрать следующую команду:
Настройка Vault
На стороне хранилища паролей необходимо:
- Включить механизм хранения database.
- Создать конфигурацию для подключения к СУБД и привязать ее к роли.
Выполним настройки по шагам.
Включаем механизм database
Для включения механизма database вводим:
vault secrets enable database
Мы должны получить ответ:
Success! Enabled the database secrets engine at: database/
… или:
Error enabling: Error making API request.
…
* path is already in use at database/
Второй ответ говорит нам о том, что механизм database уже работает по пути database/. Так или иначе, идем дальше.
Настройка подключения к postgresql
Создаем конфигурацию с опциями подключения к базе данных:
vault write database/config/postgresql \
plugin_name=postgresql-database-plugin \
allowed_roles=»postgresql-rotate,postgresql-create» \
connection_url=postgresql://`username`:`password`@192.168.0.15:5432/postgres?sslmode=disable \
username=»postgres» \
password=»password»
* где:
- database/config/postgresql — путь в системе Vault к секрету.
- plugin_name — плагин, который будем использоваться конфигурацией.
- allowed_roles — для каких ролей будет использоваться данная конфигурация. Ниже по инструкции мы создадим 2 роли — для ротации паролей и для создания временных пользователей.
- connection_url — строка подключения к базе данных. В данном примере 192.168.0.15 — сервер PostgreSQL.
- username — пользователь, под которым выполняется подключение к СУБД.
- password — пароль для пользователя, под которым выполняем подключение.
Наш Vault подготовлен для работы с базой PostgreSQL.
Вы здесь
14 команд для управления PostgreSQL
чт, 29.07.2010 — 19:41 — krak
tags:
sql
postgresql
1. Как изменить root пароль в PostgreSQL?
/usr/local/pgsql/bin/psql postgres postgres
Password: (oldpassword)
# ALTER USER postgres WITH PASSWORD ‘tmppassword’;
/usr/local/pgsql/bin/psql postgres postgres
Password: (tmppassword)
Изменение пароля для обычного пользователя происходит таким же образом. Пользователь root может поменять пароль любому пользователю.
ALTER USER username WITH PASSWORD ‘tmppassword’;
2. Как установить PostgreSQL в автозапуск?
su — root
tar xvfz postgresql-8.3.7.tar.gz
cd postgresql-8.3.7
cp contrib/start-scripts/linux /etc/rc.d/init.d/postgresql
chmod a+x /etc/rc.d/init.d/postgresql
3. Проверяем состояние сервера
/etc/init.d/postgresql status
Password:
pg_ctl: server is running (PID: 6171)
/usr/local/pgsql/bin/postgres “-D” “/usr/local/pgsql/data”
/etc/init.d/postgresql status
Password:
pg_ctl: no server running
4. Как запустить, остановить, перезапустить PostgreSQL?
service postgresql stop
Stopping PostgreSQL: server stopped
ok
service postgresql start
Starting PostgreSQL: ok
service postgresql restart
Restarting PostgreSQL: server stopped
ok
5. Как посмотреть какая версия PostgreSQL запущена?
/usr/local/pgsql/bin/psql test
Welcome to psql 8.3.7, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
test=# select version();
version
—————————————————————————————————-
PostgreSQL 8.3.7 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 4.1.2 20071124 (Red Hat 4.1.2-42)
(1 row)
test=#
5. Как создать пользователя в PostgreSQL?
Для этого существуют два метода..
Метод 1: Создаем пользователя в через PSQL шелл, командой CREATE USER.
CREATE USER ramesh WITH password ‘tmppassword’;
CREATE ROLE
Метод 2: Создаем пользователя в через шелл команду createuser.
/usr/local/pgsql/bin/createuser sathiya
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
CREATE ROLE
6. Как создать базу в PostgreSQL ?
Для этого существует 2 метода.
Метод 1: Создаем базу черезе PSQL шелл, с помощью команды CREATE DATABASE.
CREATE DATABASE mydb WITH OWNER ramesh;
CREATE DATABASE
Метод 2: Используем команду createdb.
/usr/local/pgsql/bin/createdb mydb -O ramesh
CREATE DATABASE
7. Получаем список всех баз в Postgresql?
# \l
List of databases
Name | Owner | Encoding
———-+———-+———-
backup | postgres | UTF8
mydb | ramesh | UTF8
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
8. Как удалить базу в PostgreSQL?
# \l
List of databases
Name | Owner | Encoding
———-+———-+———-
backup | postgres | UTF8
mydb | ramesh | UTF8
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
# DROP DATABASE mydb;
DROP DATABASE
9. Пользуемся встроенным хелпом к командам
Команда \? отобразит строку помощи для команда PSQL. \h CREATE покажет хелп для всех команд который начинаются с CREATE.
# \?
# \h CREATE
# \h CREATE INDEX
10. Как получить список всех таблиц в базе данный в Postgresql?
# \d
Для пустой базы вы получите сообщение “No relations found.”
11. Как узнать время выполнения запроса?
# \timing
— после выполения данной команды каждый последующий запрос будет показывать время выполнения.
# \timing
Timing is on.
# SELECT * from pg_catalog.pg_attribute ;
Time: 9.583 ms
12. Как посмотреть список доступных функций в PostgreSQL ?
Для того чтобы получить список доступных функций, скажите \df+
# \df
# \df+
13. Как отредактировать запрос к PostgreSQL в редакторе?
# \e
\e откроет редактор, в котором вы можете отредактировать запрос и сохранить его.
14. Где я могу найти файл истории postgreSQL?
Подобно файлу ~/.bash_history, postgreSQL хранит все sql команды в файле ~/.psql_history.
cat ~/.psql_history
alter user postgres with password ‘tmppassword’;
\h alter user
select version();
create user ramesh with password ‘tmppassword’;
\timing
select * from pg_catalog.pg_attribute;
.
Создание роли и базы данных PostgreSQL
Вы можете создавать новые роли из командной строки с помощью команды . Только суперпользователи и роли с привилегией могут создавать новые роли.
В следующем примере мы создадим новую роль с именем в базе данных с именем и предоставим привилегии для этой базы данных.
-
Создайте новую роль PostgreSQL
Следующая команда создаст новую роль с именем john:
-
Создайте новую базу данных PostgreSQL
Создайте новую базу данных с именем johndb с помощью команды :
-
Предоставлять привилегии
Чтобы предоставить пользователю права доступа к базе данных, созданной на предыдущем шаге, подключитесь к оболочке PostgreSQL:
и запустите следующий запрос:
Запустите установку
Когда программа попросит выбрать один из вариантов, сделайте следующее:
- Когда вас попросят выбрать локаль, выберите UTF-8. Если варианта UTF-8 в списке нет, выберите вариант UTF-8 в списке локалей для языка. Например, en_US.UTF-8 для английского языка США;
- Если программа попросит установить StackBuilder – он инсталлирует некоторые дополнительные инструменты Web, репликации и ODBC, которые не требуются для CollectionSpace. Но может потребоваться инсталляция некоторых модулей PostgreSQL, таких как PostGIS.
Обратите внимание, что некоторые из перечисленных выше параметров могут не отображаться в зависимости от версии PostgreSQL и операционной системы
Создание и удаление таблиц
Попробуйте создать таблицу для хранения данных; для примера таблица может описывать оборудование детской площадки.
Синтаксис этой команды выглядит так:
Как видите, для таблицы нужно выбрать имя, определить столбцы, тип столбцов и максимальную длину поля. Опционально можно также установить ограничения для каждого столбца.
Примечание: Подробнее о работе с таблицами можно прочитать в руководстве «Управление таблицами PostgreSQL».
К примеру, тестовая страница может иметь такой вид:
Данная таблица описывает всё оборудование. Таблица начинается со столбца ID, который указывает порядковый номер записи. Этот столбец был ограничен по PRIMARY KEY, что значит, что значения должны быть уникальными и не должны быть нулём.
Длина поля остальных двух столбцов не ограничена; дело в том, что задавать длину некоторых столбцов необязательно, так как длина автоматически задаётся типом данных.
Столбцы type и color не могут быть пустыми. Столбец location ограничен восемью возможными значениями. Столбец date указывает дату установки оборудования.
Просмотреть таблицу можно при помощи команды \dt командной строки psql
playground_equip_id_seq представляет тип данных serial, установленный для столбца equip_id. Этот тип данных отслеживает следующий номер в последовательности.
Чтобы просмотреть только таблицу, введите:
Создание ролей PostgreSQL
Для того чтобы различать пользователей и их права на доступ к базам данных, Postgres использует концепцию ролей (англ. roles). Ролью может быть отдельный пользователь или группа пользователей БД. После первой установки на сервер PostgreSQL предоставляет стандартного пользователя по имени postgres.
Даная система имеет два метода авторизации: ident и md5. По умолчанию используется метод ident, позволяющий привязать пользователя сервера к аккунту Postgres. Альтернативный метод md5, запрашивающий у клиента зашифрованный пароль, можно настроить в конфигурациях авторизации в /etc/postgresql/9.1/main/pg_hba.conf.
Чтобы создать нового пользователя, откройте аккаунт стандартного пользователя:
Войдя в систему как стандартный пользователь, добавьте роль в систему PostgreSQL:
Чтобы защитить пользователя паролем, добавьте в команду createuser флаг –pwprompt:
6: Создание и удаление таблиц
Вы уже умеете подключаться к системе баз данных PostgreSQL. Теперь давайте ознакомимся с некоторыми основными задачами по управлению Postgres.
Попробуйте создать таблицу для хранения данных. Синтаксис этой команды выглядит так:
Как видите, для таблицы нужно выбрать имя, определить столбцы, тип столбцов и максимальную длину поля. Опционально можно также установить ограничения для каждого столбца.
Для примера создайте простую таблицу, которая описывает оборудование детской площадки:
Данная таблица описывает всё оборудование детской площадки. Таблица начинается со столбца ID, который указывает порядковый номер записи. Этот столбец был ограничен по PRIMARY KEY, то есть значения должны быть уникальными и не должны быть нулём.
Столбцы type и color не могут быть пустыми. Столбец location ограничен, он имеет только восемь доступных значений. Последняя строка создает столбец date, который указывает дату установки оборудования.
Длина поля столбцов equip_id и install_date не ограничена; дело в том, что задавать длину некоторых столбцов необязательно, так как она автоматически задаётся типом данных.
Просмотреть таблицу можно при помощи команды:
playground_equip_id_seq имеет тип данных sequence. Это представление типа данных serial, установленного для столбца equip_id. Этот тип определяет следующий номер в последовательности.
Чтобы просмотреть таблицу вне этого типа данных, введите:
2: Создание кластера PostgreSQL
Нам нужно создать новый кластер базы данных PostgreSQL, прежде чем начать использовать Postgres. Кластер баз данных – это набор баз, которые управляются одним экземпляром сервера. Чтобы создать кластер, нужно создать ряд каталогов, в которые будут помещены данные БД, создать таблицы и базы данных template1 и postgres.
База данных template1 необходима для создания новой БД. Все, что хранится в ней, будет помещено в новую базу данных при ее создании. postgres – это база данных по умолчанию, предназначенная для работы с пользователями, утилитами и сторонними приложениями.
Создайте новый кластер PostgreSQL с помощью initdb:
Вы увидите следующий вывод:
Теперь запустите и включите сервис PostgreSQL с помощью systemctl:
Вы увидите такой вывод:
PostgreSQL запущен и работает. Теперь давайте посмотрим, как работает Postgres и чем эта СУБД отличается от аналогичных систем, которые вы, возможно, использовали ранее.
Дополнительная настройка
Дополнительная настройка базы данных является необязательной! CollectionSpace будет выполняться, даже если ни одно из описанных ниже действий не будет выполнено.
Ниже приведена обобщенная версия инструкций, размещенных здесь. Если вы хотите получить более подробную информацию, пожалуйста, обратитесь к этой странице.
PostgreSQL установка и настройка Windows выполняется через postgresql.conf. Откройте этот файл в текстовом редакторе и отредактируйте следующие значения:
shared_buffers = 512MB
Теперь через командную строку задайте значение kernel.shmmax. Оно должно как минимум равняться shared_buffer + 128MB:
sysctl kernel.shmmax=650000000
Затем перезапустите сервер PostgreSQL. Если на экране появится сообщение об ошибке, то нужно будет увеличить значение kernel.shmax.
Затем необходимо определить окончательное значение shmmax:
Откройте файл /etc/sysctl.conf.
vim /etc/sysctl.conf
И добавьте следующую строку — заменив значение для shmmax:
kernel.shmmax = 650000000
Наконец, установите необходимое значение cache_size:
Для этого запустите (и выведите статистику в мегабайтах):
free -m
В результате на экране вы увидите что-то наподобие этого:
free -m total used free shared buffers cached Mem: 4096 3302 793 0 253 1226 -/+ buffers/cache: 1822 2273 Swap: 511 216 295
Эффективное значение для cache_size определяется путем сложения значений buffers и cached. В приведенном выше примере:
253 + 1226 = 1479
К этому числу добавляется значение shared_buffers, поэтому в общей сложности мы получаем:
1479 + 512 = 1991 ~ 2 ГБ
Снова отредактируйте файл postgres.conf и установите эффективный размер кэша — значение, выведенное нами в предыдущих шагах:
effective_cache_size = 2GB
Также задайте следующие значения:
work_mem = 16MB # min 64kB maintenance_work_mem = 32MB # min 1MB random_page_cost = 2.0
Перезагрузите установленный PostgreSQL, чтобы изменения вступили в силу.
Мы закончили настройку PostgreSQL
Обратите внимание, что приведенные в этом разделе значения являются примерными. Их необходимо устанавливать в соответствии с настройками вашей системы
Более подробную информацию о настройках можно найти здесь.
Пожалуйста, оставляйте ваши комментарии по текущей теме статьи. Мы крайне благодарны вам за ваши комментарии, лайки, дизлайки, отклики, подписки!
Включить удаленный доступ к серверу PostgreSQL
По умолчанию сервер PostgreSQL прослушивает только локальный интерфейс ( ).
Чтобы включить удаленный доступ к серверу PostgreSQL, откройте файл конфигурации и добавьте в раздел .
/etc/postgresql/12/main/postgresql.conf
Сохраните файл и перезапустите службу PostgreSQL:
Проверьте изменения с помощью утилиты :
Вывод показывает, что сервер PostgreSQL прослушивает все интерфейсы ( ):
Следующим шагом является настройка сервера для приема удаленных подключений путем редактирования файла .
Ниже приведены несколько примеров, показывающих различные варианты использования:
/etc/postgresql/12/main/pg_hba.conf
Последний шаг — открыть порт в вашем брандмауэре.
Предполагая, что вы используете для управления брандмауэром и хотите разрешить доступ из подсети , вы должны выполнить следующую команду:
Убедитесь, что ваш брандмауэр настроен на прием подключений только из доверенных диапазонов IP-адресов.