Пошаговая инструкция по начальной загрузке, установке и запуску

Описывается сценарий установки СУБД «Квант-Гибрид» в первый раз или установки и обновления при начальной инициализации кластера баз данных, если есть возможность произвести резервное копирование и восстановление данных во вновь создаваемый кластер.

Внимание!
В случаях, когда

  • необходимо обновление или миграция (бинарная) с других СУБД, или с младших версий СУБД «Квант-Гибрид»;
  • каталог базы данных уже существует и не может быть создан заново;
  • необходимо сохранить данные уже используемой базы данных в бинарном виде

обратитесь к разделу документации Краткая инструкция по обновлению.
Также настоятельно рекомендуется использовать процедуры Резервного копирования и восстановления.

Загрузка и установка бинарных пакетов

Загрузка и установка бинарных пакетов производится из репозитория СУБД «Квант-Гибрид». Обратитесь к разделу документации Поддерживаемые платформы для уточнения, какие именно платформы поддерживаются СУБД «Квант-Гибрид».

Примечание
При установке команды должны выполняться от пользователя с правами суперпользователя. Если пользователь не обладает правами суперпользователя, выполните в терминале следующую команду (понадобится ввести пароль суперпользователя):

su -

или временно повысьте привилегии пользователя до суперпользователя командой

sudo -i

Для Centos 7 и 8

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

Установить утилиту config-manager для управления конфигурацией репозиториев:

dnf install dnf-plugin-config-manager

Установите репозиторий программного продукта СУБД «Квант-Гибрид» командой:

rpm --import https://repo.quantom.info/qhb/keys/RPM-GPG-KEY-qhb

Установите дополнительный репозиторий epel-release:

yum -y install epel-release

и далее, для CentOS 7:

dnf config-manager --add-repo https://repo.quantom.info/qhb/std-1/centos/7/x86_64/qhb.repo

Для установки qhb-patroni и postgis требуется добавить репозиторий postgresql

 yum -y -q install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

или для CentOS 8:

Примечание
Для данной ОС могут быть проблемы с установкой СУБД «Квант-Гибрид» и его расширений из-за отсутствия доступных репозиториев. Поддержка данной ОС может быть исключена в следующем релизе.

dnf config-manager --add-repo https://repo.quantom.info/qhb/std-1/centos/8/x86_64/qhb.repo

Для установки qhb-patroni и postgis требуется добавить репозиторий postgresql

 yum -y -q install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Для CentOS 8 при необходимости установить расширение postgis требуются дополнительные репозитории:

dnf config-manager --add-repo https://repo.quantom.info/qhb/additional-package/centos/8/qhb-add.repo
dnf config-manager --set-enabled powertools

Установите бинарные пакеты командой:

dnf install qhb-core [qhb-contrib] [qcp] [qdl] [qdlm] [qbackup] [metricsd] [qhb-serial] [qhb-license-bin] [...]

Например:

dnf install qhb-core

В результате установки пакета ядра QHB будет создан пользователь qhb. Ядро QHB, по умолчанию, установится в каталог /usr/local/qhb.

Многие утилиты QHB устанавливаются в каталог /usr/local/qhb/bin. Если этот каталог указать в переменной окружения $PATH, это облегчит их запуск.

См. также: Состав поставки, Страница загрузки


Для РЕД ОС 7

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

Установить утилиту config-manager для управления конфигурацией репозиториев:

dnf install dnf-plugin-config-manager

Установите репозиторий программного продукта СУБД «Квант-Гибрид» командой:

rpm --import https://repo.quantom.info/qhb/keys/RPM-GPG-KEY-qhb

и далее, для РЕД ОС 7:

dnf config-manager --add-repo https://repo.quantom.info/qhb/std-1/redos7/x86_64/qhb.repo

Установите бинарные пакеты командой:

dnf install qhb-core [qhb-contrib] [qcp] [qdl] [qdlm] [qbackup] [metricsd] [qhb-serial] [qhb-license-bin] [...]

Например:

dnf install qhb-core

В результате установки пакета ядра QHB будет создан пользователь qhb. Ядро QHB, по умолчанию, установится в каталог /usr/local/qhb.

Многие утилиты QHB устанавливаются в каталог /usr/local/qhb/bin. Если этот каталог указать в переменной окружения $PATH, это облегчит их запуск.

См. также: Состав поставки, Страница загрузки


Для ROSA Enterprise Linux Server (RELS) 7

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

Установить утилиту config-manager для управления конфигурацией репозиториев:

dnf install dnf-plugin-config-manager

Установите репозиторий программного продукта СУБД «Квант-Гибрид» командой:

rpm --import https://repo.quantom.info/qhb/keys/RPM-GPG-KEY-qhb

и далее:

dnf config-manager --add-repo https://repo.quantom.info/qhb/std-1/rosa/x86_64/qhb.repo

Установите бинарные пакеты командой:

dnf install qhb-core [qhb-contrib] [qcp] [qdl] [qdlm] [qbackup] [metricsd] [qhb-serial] [qhb-license-bin] [...]

Например:

dnf install qhb-core

В результате установки пакета ядра QHB будет создан пользователь qhb. Ядро QHB, по умолчанию, установится в каталог /usr/local/qhb.

Многие утилиты QHB устанавливаются в каталог /usr/local/qhb/bin. Если этот каталог указать в переменной окружения $PATH, это облегчит их запуск.

См. также: Состав поставки, Страница загрузки


Для Альт 8 СП

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

СУБД QHB поддерживает ОС Альт 8 СП только версии ядра 5.10.

Для установки потребуются дополнительные библиотеки libicu и libgostcrypto. Также, возможно, потребуется установка или обновление библиотеки glibc до версии 2.34 или выше, заранее проверьте версию вашей библиотеки.

Скачайте библиотеку (подходит версия 60.3-2) в любую локальную папку:

wget -c http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/libicu-60.3-2.el8_1.x86_64.rpm

Скачайте библиотеку libgostcrypto:

wget -c -r -l1 -A '*.rpm' -nd -np https://repo.quantom.info/qhb/std-1/centos/8/x86_64/libgostcrypto.0.6-0.6.1-1.x86_64.rpm

Внимание СУБД QHB для ОС Альт 8 СП поставляется на дисках. Для получения обратитесь qhb.support@quantom.info.

Скопируйте с диска все бинарные пакеты в локальную папку и установите командой, например:

apt-get install *.rpm

Вы можете установить не все пакеты QHB, а только необходимые вам. В этом случае вы можете перечислить в команде нужные вам пакеты rpm через пробел. Выбирайте последние версии из rpm пакетов, которые скачались.

Библиотека libicu и пакет qhb-core - обязательны.

В результате установки пакета ядра QHB будет создан пользователь qhb, ядро СУБД QHB, по умолчанию, будет установлено в каталог /usr/local/qhb. Многие утилиты QHB устанавливаются в каталог /usr/local/qhb/bin. Если этот каталог указать в переменной окружения $PATH, это облегчит их запуск.

См. также: Состав поставки, Страница загрузки


Для Альт Сервер 9

Обратите внимание, что для СУБД «Квант-Гибрид» версии 1.5.1 на сервере под управлением OS Alt Server 9, должна быть установлена библиотека GLIBC версии не ниже 2.28.

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

Для установки потребуется дополнительная библиотека libicu. Также, возможно, потребуется установка или обновление библиотеки glibc.

Скачайте библиотеку (подходит версия 60.3-2) в любую локальную папку:

wget -c http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/libicu-60.3-2.el8_1.x86_64.rpm

Скачайте в эту же папку пакеты программного продукта СУБД «Квант-Гибрид» из репозитория командой:

wget -c -r -l1 -A '*.rpm' -nd -np https://repo.quantom.info/qhb/std-1/centos/8/x86_64/

Обновите описания пакетов:

apt-get update

Находясь в этой же локальной папке, установите бинарные пакеты командой, например:

apt-get install *.rpm

Вы можете установить не все пакеты QHB, а только необходимые вам. В этом случае вы можете перечислить в команде нужные вам пакеты rpm через пробел. Выбирайте последние версии из rpm пакетов, которые скачались.

Библиотека libicu и пакет qhb-core - обязательны.

В результате установки пакета ядра QHB будет создан пользователь qhb, ядро QHB, по умолчанию, установится в каталог /usr/local/qhb. Многие утилиты QHB устанавливаются в каталог /usr/local/qhb/bin. Если этот каталог указать в переменной окружения $PATH, это облегчит их запуск.

См. также: Состав поставки, Страница загрузки


Для Fedora 33, 34 и 35

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

Установить утилиту config-manager для управления конфигурацией репозиториев:

dnf install dnf-plugin-config-manager

Установите репозиторий программного продукта СУБД «Квант-Гибрид» командой:

rpm --import https://repo.quantom.info/qhb/keys/RPM-GPG-KEY-qhb

и далее, для Fedora 33:

Примечание
Для данной ОС могут быть проблемы с установкой СУБД «Квант-Гибрид» и его расширений из-за отсутствия доступных репозиториев. Поддержка данной ОС может быть исключена в следующем релизе.

dnf config-manager --add-repo https://repo.quantom.info/qhb/std-1/fedora/33/x86_64/qhb.repo

для Fedora 34:

Примечание
Для данной ОС могут быть проблемы с установкой СУБД «Квант-Гибрид» и его расширений из-за отсутствия доступных репозиториев. Поддержка данной ОС может быть исключена в следующем релизе.

dnf config-manager --add-repo https://repo.quantom.info/qhb/std-1/fedora/34/x86_64/qhb.repo

или для Fedora 35:

dnf config-manager --add-repo https://repo.quantom.info/qhb/std-1/fedora/35/x86_64/qhb.repo

Установите бинарные пакеты командой:

dnf install qhb-core [qhb-contrib] [qcp] [qdl] [qdlm] [qbackup] [metricsd] [qhb-serial] [qhb-license-bin] [...]

Например:

dnf install qhb-core

В результате установки пакета ядра QHB будет создан пользователь qhb. Ядро QHB, по умолчанию, установится в каталог /usr/local/qhb.

Многие утилиты QHB устанавливаются в каталог /usr/local/qhb/bin. Если этот каталог указать в переменной окружения $PATH, это облегчит их запуск.

См. также: Состав поставки, Страница загрузки


Для Debian и Astra

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

Для подключения к репозиторию выполните следующую команду:

apt install gnupg2 apt-transport-https wget

Примечание
Для Debian 9 могут быть проблемы с установкой СУБД «Квант-Гибрид» и его расширений из-за отсутствия доступных репозиториев. Поддержка данной ОС может быть исключена в следующем релизе.

Для корректной работы репозитория СУБД «Квант-Гибрид» в файле конфигурации репозиториев /etc/apt/sources.list должна быть добавлена запись

  • для Debian 9
deb [arch=amd64] https://repo.quantom.info/qhb/std-1/debian/9 stretch main
  • для Debian 10
deb [arch=amd64] https://repo.quantom.info/qhb/std-1/debian/10 stretch main
  • для Astra Linux Special Edition «Смоленск» 1.6, 1.7
deb [arch=amd64] https://repo.quantom.info/qhb/std-1/astra-smolensk/1.7/  stretch main

Примечание
Обратите внимание, что для исключения из OS Astra Linux отозванных сертификатов безопасности следует выполнить очистку согласно инструкции по прекращению использования нежелательного сертификата.

Для Astra требуется установка корневых сертификатов. Установите их с помощью команды:

apt-get install ca-certificates

Установите репозиторий программного продукта СУБД «Квант-Гибрид» командой:

wget -qO - https://repo.quantom.info/qhb/keys/RPM-GPG-KEY-qhb --no-check-certificate | apt-key add -

Далее выполните команды:

  • для Debian 9
echo 'deb [arch=amd64] https://repo.quantom.info/qhb/std-1/debian/9 stretch main' >> /etc/apt/sources.list
  • для Debian 10
echo 'deb [arch=amd64] https://repo.quantom.info/qhb/std-1/debian/10 stretch main' >> /etc/apt/sources.list
  • для Astra Linux Special Edition «Смоленск» 1.6, 1.7
echo 'deb [arch=amd64] https://repo.quantom.info/qhb/std-1/astra-smolensk/1.7/ stretch main' >> /etc/apt/sources.list

и

apt update

Примечание
В случае появления ошибки команды apt update репозитория QHB для Астры 1.7 Ошб:6 https://repo.quantom.info/qhb/std-1/debian stretch InRelease Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 67A97AD5112F6828 надо выполнить команду импорта ключа репозитория QHB для Астры 1.7 apt-key adv --keyserver https://repo.quantom.info/qhb/keys/RPM-GPG-KEY-qhb --recv-keys 67A97AD5112F6828

Установите бинарные пакеты командой:

apt install qhb-core [qhb-contrib] [qcp] [qdl] [qdlm] [qbackup] [metricsd] [qhb-serial] [qhb-license-bin] [...]

Например:

apt install qhb-core

В результате установки пакета ядра QHB будет создан пользователь qhb. Ядро QHB, по умолчанию, установится в каталог /usr/local/qhb.

Многие утилиты QHB устанавливаются в каталог /usr/local/qhb/bin. Если этот каталог указать в переменной окружения $PATH, это облегчит их запуск.

См. также: Состав поставки, Страница загрузки


Для Ubuntu

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

Для подключения к репозиторию выполните следующую команду:

apt install gnupg2 apt-transport-https wget

Для корректной работы репозитория СУБД «Квант-Гибрид» в файле конфигурации репозиториев /etc/apt/sources.list должна быть добавлена запись:

  • для Ubuntu 18.04
ubuntu  [arch=amd64] https://repo.quantom.info/qhb/std-1/ubuntu/18/ stretch main
  • для Ubuntu 22.04
ubuntu  [arch=amd64] https://repo.quantom.info/qhb/std-1/ubuntu/22/ stretch main

Установите репозиторий программного продукта СУБД «Квант-Гибрид» командой:

wget -qO - https://repo.quantom.info/qhb/keys/RPM-GPG-KEY-qhb --no-check-certificate | apt-key add -

Далее выполните команды:

  • для Ubuntu 18.04
echo 'ubuntu https://repo.quantom.info/qhb/std-1/ubuntu/18 stretch main' >> /etc/apt/sources.list
  • для Ubuntu 22.04
echo 'ubuntu https://repo.quantom.info/qhb/std-1/ubuntu/22 stretch main' >> /etc/apt/sources.list

и

apt update

Установите бинарные пакеты командой:

apt install qhb-core [qhb-contrib] [qcp] [qdl] [qdlm] [qbackup] [metricsd] [qhb-serial] [qhb-license-bin] [...]

Например:

apt install qhb-core

В результате установки пакета ядра QHB будет создан пользователь qhb. Ядро QHB, по умолчанию, установится в каталог /usr/local/qhb.

Многие утилиты QHB устанавливаются в каталог /usr/local/qhb/bin. Если этот каталог указать в переменной окружения $PATH, это облегчит их запуск.

См. также: Состав поставки, Страница загрузки


В виде docker контейнера

Предлагается конфигурация: сервер СУБД «Квант-Гибрид» с расширениями и пул соединений QCP.

Получение Dockerfile и конфигураций

Создайте локальный каталог и разверните в нём скрипты docker из репозитория СУБД «Квант-Гибрид»:

wget https://repo.quantom.info/qhb/std-1/docker/qhb-docker-image.tar.gz -O - | tar -xz

Создание образов

Внимание!
Потребуется docker-compose. Здесь и далее, запускать docker-compose следует из-под обычного пользователя (не root). Возможно, для этого надо будет выполнить рекомендации по настройке docker.

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

docker-compose build

Замечание.
Если возникают проблемы с построением образа, связанные с недоступностью репозитория centos, нужно проверить сетевые разрешения. Иногда, перед построением, просто помогает выполнение таких команд:

sudo firewall-cmd --zone=public --add-masquerade --permanent
sudo firewall-cmd --reload

Запуск контейнера

Для запуска контейнеров СУБД «Квант-Гибрид» и QCP с настройками по умолчанию, выполните в текущем каталоге:

docker-compose up

Прервать выполнение можно с помощью Ctrl+C, или же выполнив из другой консоли в текущем каталоге:

docker-compose down

Для запуска контейнеров в режиме "демона", выполните:

docker-compose up -d

При первом запуске база данных будет автоматически инициализирована.

Посмотреть логи можно с помощью команды:

docker-compose logs

По умолчанию, база данных сохраняется на диске в каталоге qhb/pgdata.

Остановка контейнеров

Если контейнеры были запущены посредством docker-compose up, то для остановки достаточно нажать Ctrl+C. Если же контейнеры были запущены в режиме «демона», т. е. посредством docker-compose up -d, то для их остановки выполните (из любой консоли) в текущем каталоге: docker-compose down. Эту команду также можно выполнять и при остановленных контейнерах.

Настройка QCP

По умолчанию сервис QCP выключен. Для его запуска необходимо в файле docker-compose.yaml убрать (закомментировать) запись

entrypoint: ["echo", "Service qcp disabled"]

из раздела services: -> qcp:, а также настроить сервис, в частности параметры подключения к серверу.

Настройка QCP осуществляется посредством редактирования файла ./qcp/config.yaml.

Обязательно замените в разделе servers:

%USER% - на имя пользователя, от имени которого запускается docker-compose, и

%DATABASE% - на имя базы данных, в простейшем случае база создается с именем, совпадающим с именем пользователя.

В дальнейшем, если вы создадите другую базу данных, этот параметр может потребоваться изменить. По умолчанию сервис QCP работает на порту 8080, при необходимости переопределите этот параметр. Обратите внимание, что настройки применяются только при запуске.

Отредактируйте файл docker-compose.yaml следующим образом:

В разделе services: -> qhb: -> volumes: замените

- ./qhb/pgdata:/qhb-data/

на

- /path/to/pgdata:/qhb-data/

где /path/to/pgdata — абсолютный путь до каталога базы данных с существующей базой данных.

В разделе services: -> qhb: -> environment: замените - USER на - USER=USERNAME

Запустите контейнер с помощью команды

docker-compose -e USER="USERNAME" up

где USERNAME — имя пользователя, владеющего каталогом /path/to/pgdata.

Пример отредактированного файла docker-compose.yaml:

version: "3.3"
services:
  qhb:
    build: qhb
    image: qhb
    network_mode: "host"
    environment:
      - USER=qhb
    volumes:
      - ./qhb/pgdata:/qhb-data/

  qcp:
    build: qcp
    image: qcp
    network_mode: "host"
    entrypoint: ["echo", "Service qcp disabled"]  # Comment this line if will use QCP
    volumes:
      - ./qcp/config.yaml:/config.yaml:ro

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

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


Инициализация кластера баз данных

Создайте каталог для размещения базы данных командой

sudo mkdir <путь/имя_каталога>

Например:

sudo mkdir /var/lib/qhb/data

Разрешите доступ к нему пользователю qhb командой

sudo chown qhb <путь/имя_каталога>

В нашем случае:

sudo chown qhb /var/lib/qhb/data

Далее рекомендуется переключиться на пользователя qhb и выполнять команды от его имени. В ином случае необходимо использовать sudo -u qhb для всех последующих команд, если вы работаете от пользователя с правами sudo.

Инициализируйте кластер базы данных при помощи утилиты qhb_bootstrap или initdb.

<путь_к_бинарным_утилитам QHB>/qhb_bootstrap -D <путь/имя_каталога> -U qhb

В нашем случае:

/usr/local/qhb/bin/qhb_bootstrap -D /var/lib/qhb/data -U qhb

или, если установлена переменная среды $PATH:

qhb_bootstrap -D /var/lib/qhb/data -U qhb

В дальнейшем данный каталог будет использоваться при запуске и остановке сервера QHB. Его можно указать в переменной среды $PGDATA, что облегчит запуск следующих утилит — можно будет не указывать каталог в параметре -D.

См. также: Создание кластера баз данных, initdb, qhb_bootstrap


Запуск и остановка сервера

Рекомендуется переключиться на пользователя qhb и выполнять команды от его имени. В ином случае необходимо использовать sudo -u qhb для всех последующих команд, если вы работаете от пользователя с правами sudo.

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

<путь_к_бинарным_утилитам QHB>/qhb_ctl -D <путь/имя_каталога> start

В нашем случае:

/usr/local/qhb/bin/qhb_ctl -D /var/lib/qhb/data start

Или, если установлены переменные среды $PGDATA и $PATH:

qhb_ctl start

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

<путь_к_бинарным_утилитам QHB>/qhb_ctl -D <путь/имя_каталога> stop

В нашем случае:

/usr/local/qhb/bin/qhb_ctl -D /var/lib/qhb/data stop

Или, если установлена переменная среды $PGDATA:

qhb_ctl stop

См. также: Запуск сервера баз данных, Завершение работы сервера


Запуск и остановка сервера с помощью сервиса systemd

Замечание.
Описывается запуск QHB сервиса через подсистему инициализации и управления службами systemd. Уточните, что она установлена в вашем дистрибутиве Linux.

При установке из пакета rpm, имеется возможность использовать сервис systemd для автоматического запуска сервера БД при старте системы. Для этого, необходимо уточнить предварительно установленный скрипт запуска сервиса. Если необходимо поменять расположение каталога базы данных, задаваемое по умолчанию, выполните:

sudo systemctl edit qhb

Далее, в открывшемся редакторе (файл изначально пуст) укажите нужный путь:

[Service]
Environment=PGDATA=/opt/qhb/data

Сохраните изменения и завершите работу редактора.

Перестройте сервис и, если необходимо, разрешите ему запускаться при перезагрузке ОС:

sudo systemctl daemon-reload
sudo systemctl enable qhb

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

sudo systemctl start qhb

А останавливать командой:

sudo systemctl stop qhb

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

Первый способ проверить, есть ли у вас доступ к серверу баз данных, — попытаться создать базу данных. Работающий сервер QHB способен управлять многими базами данных. Как правило, для каждого проекта или пользователя используется отдельная база.

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

Чтобы создать новую базу данных, в этом примере названную mydb, используется следующая команда:

$ createdb mydb -h localhost

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

Если вы видите сообщение вида:

createdb: command not found
-- команда не найдена

значит, QHB не была установлена должным образом. Либо она вообще не была установлена, либо не была включена в путь поиска вашей оболочки. Тогда попробуйте вызвать команду по абсолютному пути:

$ /usr/local/qhb/bin/createdb mydb

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

Возможен и другой ответ:

createdb: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory
-- ошибка: не удалось подключиться к серверу через сокет "/tmp/.s.PGSQL.5432": Данный файл или каталог не существует
        Is the server running locally and accepting connections on that socket?
        -- Этот сервер действительно работает локально и принимает соединения через этот сокет?

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

Возможен и другой ответ:

createdb: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL:  role "joe" does not exist
-- ошибка: не удалось подключиться к серверу через сокет "/tmp/.s.PGSQL.5432": ФАТАЛЬНО:  роль "joe" не существует

где упоминается ваше имя пользователя. Это произойдет, если администратор не создал для вас учетную запись пользователя QHB. (Учетные записи пользователей QHB отличаются от учетных записей пользователей операционной системы). Если вы администратор, обратитесь к главе Роли в базе данных за помощью в создании учетных записей. Вам нужно будет стать пользователем операционной системы, под которым была установлена QHB (обычно qhb), чтобы создать первую учетную запись пользователя. Возможно также, что вам было присвоено имя пользователя QHB, отличающееся от имени пользователя вашей операционной системы; в этом случае следует использовать ключ -U или установить переменную среды PGUSER, чтобы указать свое имя пользователя в QHB.

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

createdb: database creation failed: ERROR:  permission denied to create database
-- ошибка: создать базу данных не удалось: ОШИБКА:  нет прав на создание базы данных

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

Кроме того, можно создавать базы данных с другими именами. QHB позволяет создавать любое количество баз данных. Имена баз данных должны начинаться с буквенного символа и иметь длину не более 63 байт. Удобный выбор — создать базу данных с вашим текущим именем пользователя. Многие программы предполагают такое имя по умолчанию, что может помочь вам сэкономить время на ввод текста. Чтобы создать эту базу данных, просто напишите:

$ createdb

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

$ dropdb mydb

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

Больше информации по командам createdb и dropdb можно найти в соответствующих разделах.


1

В качестве объяснения того, почему это работает: имена пользователей QHB отделены от учетных записей пользователей операционной системы. Подключаясь к базе данных, вы можете выбрать, под каким именем пользователя QHB подключаться; если вы этого не сделаете, по умолчанию будет использоваться имя вашей текущей учетной записи в операционной системе. Таким образом, всегда будет учетная запись пользователя QHB, имя которой совпадает с именем пользователя операционной системы, запустившего сервер, причем этот пользователь всегда имеет разрешение на создание баз данных. Вместо входа в систему под этим пользователем можно везде указать параметр -U, чтобы передать имя пользователя QHB для подключения.


Доступ к базе данных

Создав базу данных, вы можете получить к ней доступ одним из следующих способов:

  • С помощью интерактивного терминала QHB, называемого psql, который позволяет в интерактивном режиме вводить, редактировать и выполнять команды SQL.

  • С использованием существующего графического инструмента внешнего интерфейса, например pgAdmin, DBeaver или офисного пакета с поддержкой ODBC или JDBC. Эти возможности не рассматриваются в этом руководстве.

  • Написав собственное приложение с использованием одной из нескольких доступных языковых привязок.

Испытать примеры из этого руководства можно, запустив psql. Это можно сделать для базы данных mydb, набрав команду:

$ psql -h localhost -d mydb

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

Внутри psql вы увидите следующее сообщение:

psql - Interactive terminal qhb (1.2.0)
Enter "\help" in order to get help

mydb(username)=#

Это будет означать, что вы являетесь суперпользователем базы данных, что наиболее вероятно, если вы сами установили экземпляр QHB. Суперпользователь имеет неограниченный доступ к базе данных; впрочем, для целей данного руководства это не имеет значения.

Если вы столкнулись с проблемами при запуске psql, вернитесь к предыдущему разделу. Диагностики createdb и psql схожи, и если первая сработала, то вторая тоже должна сработать.

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

mydb(username)=# select version();
version   
----------
QHB 1.2.0
(1 row)

mydb(username)=# SELECT current_date;
    date
------------
 2020-10-07

mydb(username)=# SELECT 2 + 2;
 ?column?
----------
4
(1 row)

Программа psql имеет ряд внутренних команд, которые не являются командами SQL. Они начинаются с символа обратного слэша «\». Например, можно получить справку по синтаксису различных команд SQL в QHB, написав:

mydb(username)=# \h

Чтобы выйти из psql, напишите:

mydb(username)=# \q

и psql завершит свою работу и вернет вас в командную оболочку. (Чтобы узнать больше о внутренних командах, введите \? в приглашении psql.) Все возможности psql освещаются в соответствующем разделе. В этом руководстве мы не будем использовать эти функциональные возможности явно, но вы можете самостоятельно применять их по мере необходимости.