Установка и настройка postgresql 13 на linux ubuntu server 20.04
Содержание:
Основные параметры
Дальнейшие действия зависят от условий, в которых вы планируете использовать СУБД. Если нужно подключение к сети по протоколу «TCP/IP»:
- Откройте файл конфигурации postgresql.conf. Он находится в папке «etc/postgresql//main/».
- Отыщите в нём параметр «listen_addresses = ‘localhost’»
- Замените значение localhost на «*» («звёздочку»).
- Сохраните.
Если этого не сделать, сервер СУБД будет доступен только на одном компьютере.
В программе доступны разные методы аутентификации. Лучше выбрать IDENT или MD5. Первый стоит по умолчанию. Чтобы использовать второй:
- Откройте файл pg_hba.conf. Он в каталоге «/etc/postgresql//main/».
- Найдите там параметр «local all postgres» и напечатайте рядом md5. Если такой строки нет, впишите её.
Создание новой роли
На данный момент у нас есть всего одна роль . Мы можем создавать новые роли используя команду из командной строки. Флаг позволит сделать это в интерактивном режиме, когда система будет запрашивать необходимые значения у вас.
Если вы осуществили вход с помощью аккаунта , вы можете создать нового пользователя напечатав команду:
Если вы предпочитаете использовать перед вашими командами и не переключаться между пользователями, вы можете сделать это следующим образом:
Этот скрипт задаст вам несколько вопросов, и, в зависимости от ваших ответов, выполнит необходимые команды Postgres для создания желаемого аккаунта пользователя.
Вы можете использовать дополнительные флаги при выполнении этой команды. Ознакомиться с полным списком флагов можно изучив страницу :
Установка
Установите PostgreSQL:
emerge -a dev-db/postgresql
Выполните базовую настройку PostgreSQL:
emerge —config postgresql
Configuring pkg...
* You can modify the paths and options passed to initdb by editing:
* /etc/conf.d/postgresql-13
*
* Information on options that can be passed to initdb are found at:
* http://www.postgresql.org/docs/13/static/creating-cluster.html
* http://www.postgresql.org/docs/13/static/app-initdb.html
*
* PG_INITDB_OPTS is currently set to:
* --encoding=UTF8
*
* Configuration files will be installed to:
* /etc/postgresql-13/
*
* The database cluster will be created in:
* /var/lib/postgresql/13/data
*
* Continuing initialization in 5 seconds (Control-C to cancel) ...
ok
* Creating the data directory ...
* Initializing the database ...
Файлы, относящиеся к этой СУБД, будут принадлежать пользователю "postgres".
От его имени также будет запускаться процесс сервера.
Кластер баз данных будет инициализирован со следующими параметрами локали:
COLLATE: ru_RU.utf8
CTYPE: ru_RU.utf8
MESSAGES: ru_RU.utf8
MONETARY: ru_RU.utf8
NUMERIC: C
TIME: ru_RU.utf8
Выбрана конфигурация текстового поиска по умолчанию "russian".
Контроль целостности страниц данных отключён.
исправление прав для существующего каталога /var/lib/postgresql/13/data... ок
создание подкаталогов... ок
выбирается значение max_connections... 100
выбирается значение shared_buffers... 128MB
выбор реализации динамической разделяемой памяти... posix
создание конфигурационных файлов... ок
выполняется подготовительный скрипт... ок
выполняется заключительная инициализация... ок
сохранение данных на диске... ок
ПРЕДУПРЕЖДЕНИЕ: используется проверка подлинности "trust" для локальных подключений.
Другой метод можно выбрать, отредактировав pg_hba.conf или используя ключи -A,
--auth-local или --auth-host при следующем выполнении initdb.
Готово. Теперь вы можете запустить сервер баз данных:
/usr/lib64/postgresql-13/bin/pg_ctl -D /var/lib/postgresql/13/data -l файл_журнала start
* The autovacuum function, which was in contrib, has been moved to the main
* PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled
* by default. You can disable it in the cluster's:
* /etc/postgresql-13/postgresql.conf
*
* The PostgreSQL server, by default, will log events to:
* /var/lib/postgresql/13/data/postmaster.log
*
* You should use the '/etc/init.d/postgresql-13' script to run PostgreSQL
* instead of 'pg_ctl'.
В выводе указана вся основная информация.
Запустите PostgreSQL:
/etc/init.d/postgresql-13 start
postgresql-13 | * /run/postgresql: creating directory postgresql-13 | * /run/postgresql: correcting owner postgresql-13 | * Starting PostgreSQL 13 ... ok
Добавьте SQL-сервер в автозагрузку:
rc-update add postgresql-13
* service postgresql-13 added to runlevel default
Установите PostgreSQL в Ubuntu
На момент написания этой статьи последней версией PostgreSQL, доступной в официальных репозиториях Ubuntu, была PostgreSQL версии 10.4.
Чтобы установить PostgreSQL на свой сервер Ubuntu, выполните следующие действия:
-
Установка PostgreSQL
Обновите локальный индекс пакета и установите сервер PostgreSQL вместе с пакетом Contrib PostgreSQL, который предоставляет несколько дополнительных функций для базы данных PostgreSQL:
-
Проверка установки PostgreSQL
После завершения установки служба PostgreSQL запустится автоматически.
Чтобы проверить установку, мы попытаемся подключиться к серверу базы данных PostgreSQL с помощью и распечатать версию сервера :
psql — это интерактивная утилита командной строки, которая позволяет вам взаимодействовать с сервером PostgreSQL.
Перезапустите службу PostgreSQL
Если при запуске сервера после установки PostgreSQL выводятся сообщения об ошибках, обратитесь к разделу «Сбои при запуске сервера» в документации PostgreSQL по запуску сервера.
Linux:
Если вы являетесь пользователем root или sudo, можно выполнить следующую команду:
service postgresql restart
Mac:
Убедитесь, что вы являетесь пользователем postgres:
sudo su - postgres pg_ctl restart -D /Library/PostgreSQL/9.1/data
Флаг -D указывает местоположение каталога данных PostgreSQL, который также может быть установлен как переменная среды PGDATA. По умолчанию его можно найти по адресу /Library/PostgreSQL/9.1/data.
Если при попытке запустить pg_ctl вы получаете сообщение об ошибке «not found», попробуйте указать полный путь к этому файлу в подкаталоге bin каталога, в котором установлен PostgreSQL. Например: /Library/PostgreSQL/9.1/bin/pg_ctl restart -D /Library/PostgreSQL/9.1/data
Чтобы добавить PGDATA в качестве глобальной переменной среды в / etc / profile, выполните следующие шаги:
sudo vi /etc/profile
Затем добавьте следующую строку:
export PGDATA=»/Library/PostgreSQL/9.1/data»
После этого можно будет выполнить предыдущую команду для перезапуска сервера PostgreSQL без флага -D.
Windows:
При установке PostgreSQL Windows у вас должны быть права администратора. Кликните правой кнопкой мыши по ярлыку «Мой компьютер» и выберите пункт «Управление». В пользовательском интерфейсе «Управление» выберите «Службы и приложения» — «Службы». Найдите службу PostgreSQL («postgresql-9.0 — PostgreSQL Server 9.0»), выберите ее и нажмите на кнопку «Перезапустить службу».
Веб-публикации
Сервер 1С поддерживает возможность веб-публикаций баз 1С. Это дает возможность открывать программу в браузере или мобильном приложении. В Linux данные публикации осуществляются с помощью Apache.
Установка и запуск Apache
Первым делом, устанавливаем веб-сервер apache:
apt-get install apache2
Разрешаем автозапуск веб-сервера и стартуем сам сервис:
systemctl enable apache2
systemctl start apache2
Открываем браузер и переходим по адресу http://<IP-адрес сервера 1С> — мы должны увидеть стартовую страницу Apache:

Публикация 1С на веб-сервере
Публикация базы выполняется с помощью скрипта webinst, который устанавливается с сервером. Для простоты, мы опубликуем базу в корневую директорию /var/www/html, но при желании, можно настроить виртуальные домены.
И так, создадим каталог, в который опубликуем нашу базу:
mkdir /var/www/html/test
Переходим в каталог с установленным 1С:
cd /opt/1C/v8.3/x86_64/
… или:
cd /opt/1cv8/x86_64/8.3.16.1148/
* где 8.3.16.1148 — версия установленной платформы.
Заускаем скрипт для публикации базы:
./webinst -apache24 -wsdir test -dir /var/www/html/test -connstr «Srvr=192.168.1.11;Ref=test;» -confPath /etc/apache2/apache2.conf
* где apache24 — версия установленного apache; test — имя нашей базы, которую мы создали ранее; /var/www/html/test — путь до каталога на сервере, в котором будет опубликована база; 192.168.1.11 — IP-адрес сервера 1С; Ref=test — имя базы в СУБД; /etc/apache2/apache2.conf — путь до конфигурационного файла apache.
Мы должны увидеть:
Publication successful
… или:
Публикация выполнена
Перезапускаем апач:
systemctl restart apache2
Открываем браузер и переходим по адресу http://<IP-адрес сервера 1С>/test/, где test — каталог в каталоге /var/www/html, куда мы опубликовали базу.
Шаг 7 — Добавление, запрос и удаление данных в таблице
Вставим в таблицу данные, например, slide и swing. Для этого нужно вызвать желаемую таблицу, присвоить имена столбцам и задать данные для каждого столбца следующим образом:
Вы должны быть внимательны при вводе данных, чтобы не допустить нескольких общих проблем. Во-первых, оборачивайте в кавычки не названия столбцов, а значения в столбцах.
Еще один момент, который необходимо учитывать, состоит в том, что вы не должны указывать значения для столбца . Генерирование выполняется автоматически при добавлении в таблицу новой строки.
Получите добавленную вами информацию, введя следующую команду:
Вы можете убедиться, что столбец уже заполнен успешно, а все другие данные были организованы корректно.
Если же строка slide в таблице разрывается, вы можете удалить строку из таблицы, использовав следующую команду:
Запросите таблицу еще раз:
Обратите внимание, что строка уже не является частью таблицы
Шаг 5 — Открытие командной строки Postgres с новой ролью
Чтобы выполнить аутентификацию с помощью , вам потребуется пользователь Linux с тем же именем, что и имя роли и базы данных в Postgres.
Если у вас нет соответствующего пользователя Linux, то вы можете создать его с помощью команды . Вы должны воспользоваться учетной записи без прав root с привилегиями (т.е. не выполняя вход в качестве пользователя postgres):
Когда новая учетная запись будет доступна, вы можете переключиться и подключиться к базе данных следующим образом:
Либо же вы можете сделать следующее:
Эта команда позволит выполнить вход автоматически, полагая, что все компоненты были настроены должным образом.
Если вы хотите, чтобы ваш пользователь подключился к другой базе данных, то вы можете сделать это с помощью следующей команды:
После входа вы можете проверить данные о текущем подключении:
Это полезно, если вы подключены к нестандартным базам данных или используете нестандартных пользователей.
Включить удаленный доступ к серверу PostgreSQL
По умолчанию сервер PostgreSQL прослушивает только локальный интерфейс ( ).
Чтобы включить удаленный доступ к серверу PostgreSQL, откройте файл конфигурации и добавьте в раздел .
/etc/postgresql/12/main/postgresql.conf
Сохраните файл и перезапустите службу PostgreSQL:
Проверьте изменения с помощью утилиты :
Вывод показывает, что сервер PostgreSQL прослушивает все интерфейсы ( ):
Следующим шагом является настройка сервера для приема удаленных подключений путем редактирования файла .
Ниже приведены несколько примеров, показывающих различные варианты использования:
/etc/postgresql/12/main/pg_hba.conf
Последний шаг — открыть порт в вашем брандмауэре.
Предполагая, что вы используете для управления брандмауэром и хотите разрешить доступ из подсети , вы должны выполнить следующую команду:
Убедитесь, что ваш брандмауэр настроен на прием подключений только из доверенных диапазонов IP-адресов.
Connect to the PostgreSQL database server via psql
In PostgreSQL, a user account is referred to as a role. By default, PostgreSQL uses ident authentication.
It means that PostgreSQL will associate its roles with the system accounts of Linux. If a role exists in PostgreSQL, the same Linux user account with the same name is able to log in as that role.
When you installed PostgreSQL, the installation process created a user account called associated with the default role.
To connect to PostgreSQL using the role, you switch over to the account on your server by typing:
It’ll prompt for the password of the current user. You need to provide the password and hit the keyboard.
Then, you can access the PostgreSQL using the by typing the following command:
You’ll access the postgres prompt like this:
From here, you can interact with the PostgreSQL like issuing a query.
To quit the PostgreSQL prompt, you run the following command:
This above command will bring you back to the postgres Linux command prompt.
To return to your regular system user, you execute the command like this:
Включить удаленный доступ к серверу PostgreSQL
По умолчанию сервер PostgreSQL прослушивает только локальный интерфейс . Чтобы включить удаленный доступ к серверу PostgreSQL, откройте файл конфигурации и добавьте в раздел .
/etc/postgresql/10/main/postgresql.conf
сохраните файл и перезапустите службу PostgreSQL с помощью:
Проверьте изменения с помощью утилиты :
Как видно из выходных данных выше, сервер PostgreSQL прослушивает все интерфейсы (0.0.0.0).
Последний шаг — настроить сервер на прием удаленных подключений путем редактирования файла .
Ниже приведены несколько примеров, показывающих различные варианты использования:
/etc/postgresql/10/main/pg_hba.conf
Создание кластера БД
Дальнейшие действия нужно проделывать под пользователем 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 лежат базы данных. Но о содержимом этого каталога мы поговорим позже.
Дополнительные параметры

Эта страничка позволяет настроить несколько дополнительных параметров сервера:
Локаль: Выберите локаль с которой будет инициализирован кластер. Параметр позволит программе «initdb» попытаться определить подходящую локаль из окружающей среды. В Mac OS X, как правило, подходящая локаль — «C.UTF8», в то время как на Linux и Windows текущая локаль обычно может определяться правильно. (прим.: В этом окне вам предлагается выбрать локаль, с использованием которой будет инициализирован кластер баз данных и которая в дальнейшем будет использоваться по-умолчанию при создании других баз данных. Это довольно важный шаг, ибо локаль определяет такой важный параметр как кодировка данных в базах. Большинство людей всё-таки предпочитает работать с кодировкой UTF-8. Эта кодировка будет установлена в том случае, если в данном окне вы выберите локаль по умолчанию: . Перед тем как выбрать локаль хорошенько подумайте. Если вы устанавливаете PostgreSQL для обеспечения работы какого-либо приложения, прочтите документацию к нему, возможно это приложение требует какую-то конкретную кодировку.)
Установить pl/pgsql в базу данных template1? : Этот параметр позволяет установить процедурный язык pl/pgsql в базу данных «template1» — это означает, что он будет присутствовать во всех новых базах данных, созданных с помощью этого шаблона. В случае если вы решили не устанавливать pl/pgsql, то он в будущем может быть легко установлен на отдельные базы данных, если потребуется.
Обратите внимание, что эта страница не будет отображаться, если вы используете повторно существующий каталог с данными.
Использование
Руководство по использованию можно скачать прямо из терминала. Введите в «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 не сложно освоить. Нужно лишь запомнить основные команды. Эта СУБД часто используется в коммерческих целях. Подходит для веб-дизайна и создания сайтов. Поддерживает популярные языки программирования.
Шаг 2 — Использование ролей и баз данных в PostgreSQL
По умолчанию Postgres использует концепцию «ролей» для выполнения аутентификации и авторизации. В некоторых аспектах они напоминают обычные учетные записи в Unix, однако Postgres не делает различий между пользователями и группами и предпочитает использовать более гибкий термин “роль”.
После установки Postgres настроена на использование аутентификации ident, что значит, что выполняется привязка ролей Postgres с соответствующей системной учетной записью Unix/Linux. Если роль существует внутри Postgres, пользователь Unix/Linux с тем же именем может выполнить вход в качестве этой роли.
В ходе установки была создана учетную запись пользователя postgres, которая связана с используемой по умолчанию ролью Postgres. Чтобы использовать Postgres, вы можете войти в эту учетную запись.
Существует несколько способов использования этой учетной записи для доступа к Postgres.
Переключение на учетную запись postgres
Вы можете переключиться на учетную запись postgres на вашем сервере с помощью следующей команды:
Теперь вы можете немедленно получить доступ к командной строке PostgresSQL с помощью следующей команды:
Теперь вы можете свободно взаимодействовать с СУБД по мере необходимости.
Закройте командную строку PostgreSQL с помощью следующей команды:
В результате вы вернетесь в командную строку в Linux.
Доступ к командной строке Postgres без переключения учетных записей
Также вы можете запустить необходимую вам команду с учетной записью напрямую с помощью sudo.
Например, в последнем примере от вас требовалось перейти в командную строку Postgres с помощью переключения на пользователя postgres и последующего запуска , чтобы открыть командную строку Postgres. Вы можете сделать это в один прием с помощью отдельной команды , используя пользователя postgres с следующим образом:
Это позволит выполнить вход в Postgres без необходимости использования промежуточной командной строки .
Вы снова сможете выйти из интерактивной сессии Postgres с помощью следующей команды:
Многие варианты использования требуют использования сразу нескольких ролей Postgres. Ниже вы узнаете, как выполнить настройку в таких случаях.
Как добавлять и удалять столбцы из таблицы
При необходимости мы можем легко добавить дополнительные столбцы и после создания таблицы.
Для примера добавим в нашу таблицу столбец, содержащий информацию о дате последнего осмотра единицы инвентаря детской площадки:
Теперь если мы выведем содержимое таблицы, мы увидим, что новый столбец был добавлен (но существующие записи не содержат никаких значений в этом столбце):
Мы также легко можем и удалять столбцы. Например, если наш ремонтный отдел использует отдельный инструмент для отслеживания истории технического обслуживания инвентаря нашей площадки, мы можем удалить созданный ранее столбец следующим образом:
Шаг 8 — Добавление и удаление столбцов таблицы
После создания таблицы ее легко можно изменить, добавляя или удаляя столбцы. Добавьте столбец для отображения даты последнего технического обслуживания для каждого элемента оборудования, введя следующую команду:
Если вы снова просмотрите данные таблицы, то увидите, что новый столбец был добавлен (но не было добавлено данных):
Удаление столбца является таким же простым. Если вы обнаружите, что ваша команда использует отдельный инструмент для отслеживания истории обслуживания, то можете удалить столбец, введя следующую команду:
Эта команда удаляет столбец и любые значения внутри него, но оставляет все другие данные нетронутыми.
Установка PostgreSQL из исходников
Работаем из под пользователя root, поэтому будьте осторожны!
Прежде всего скачаем и распакуем архив:
# mkdir pg # cd pg/ # wget https://ftp.postgresql.org/pub/source/v13.3/postgresql-13.3.tar.gz # tar xf postgresql-13.3.tar.gz # cd postgresql-13.3/
Далее, установим необходимые пакеты, соберем из исходников postgresql и установим его:
# apt install gcc make # apt install libreadline-dev # apt install zlibc zlib1g-dev # ./configure # make # make install
В результате, PostgreSQL у нас установится в каталог /usr/local/pgsql/, здесь лежат сами бинарники.
Теперь нам нужно создать каталог для хранения данных. В PostgreSQL он называется PGDATA по имени переменной $PGDATA в которой содержится путь к каталогу кластера PostgreSQL. Создадим такой каталог а также пользователя “postgres“. Дополнительно сделаем этого пользователя владельцем этого каталога и установим права (750):
# mkdir /usr/local/pgsql/data # adduser postgres # chown postgres /usr/local/pgsql/data/ # chmod 750 /usr/local/pgsql/data/
Install PostgreSQL from PostgreSQL Apt Repository
PostgreSQL is available in all Ubuntu versions by default, but it doesn’t guarantee automatic updates when new releases come out. The local repository only has «snapshots» of a specific version. The best practice is to install the software from the PostgreSQL Apt Repository.
The PostgreSQL Apt Repository provides the latest PostgreSQL version, as well as all previous server packages, extensions, and modules.
Step 1: Add PostgreSQL Repository
To install from the official repository, you first need to add it to your system.
Import the GPG repository key with the commands:

Then, add the PostgreSQL repository by typing:
Step 2: Update the Package List
After adding the official PostgreSQL repository, make sure to update the package list. Doing this ensures you install the latest PostgreSQL package.
Step 3: Install PostgreSQL
To install PostgreSQL and the PostgreSQL contrib package (which provides additional features), use the following command:

By default, the software creates a postgres user, once you successfully install the database system. This user account has the default ‘postgres’ role.
Шаг 2 — Использование ролей и баз данных в PostgreSQL
По умолчанию Postgres использует концепцию “ролей” для выполнения аутентификации и авторизации. В некоторых аспектах они напоминают обычные учетные записи в Unix, однако Postgres не делает различий между пользователями и группами и предпочитает использовать более гибкий термин “роль”.
После установки Postgres настроена на использование аутентификации ident, что значит, что выполняется привязка ролей Postgres с соответствующей системной учетной записью Unix/Linux. Если роль существует внутри Postgres, пользователь Unix/Linux с тем же именем может выполнить вход в качестве этой роли.
В ходе установки была создана учетную запись пользователя postgres, которая связана с используемой по умолчанию ролью Postgres. Чтобы использовать Postgres, вы можете войти в эту учетную запись.
Существует несколько способов использования этой учетной записи для доступа к Postgres.
Переключение на учетную запись postgres
Вы можете переключиться на учетную запись postgres на вашем сервере с помощью следующей команды:
Теперь вы можете немедленно получить доступ к командной строке Postgres с помощью следующей команды:
В результате вы можете получить доступ к командной строке postgreSQL, а уже отсюда свободно взаимодействовать с системой управления базами данных.
Закройте командную строку PostgreSQL с помощью следующей команды:
В результате вы вернетесь в командную строку в Linux.
Доступ к командной строке Postgres без переключения учетных записей
Также вы можете запустить необходимую вам команду с учетной записью напрямую с помощью sudo.
Например, в последнем примере от вас требовалось перейти в командную строку Postgres с помощью переключения на пользователя postgres и последующего запуска , чтобы открыть командную строку Postgres. Вы можете сделать это в один прием с помощью отдельной команды , используя пользователя postgres с следующим образом:
Это позволит выполнить вход в Postgres без необходимости использования промежуточной командной строки .
Вы снова сможете выйти из интерактивной сессии Postgres с помощью следующей команды:
Многие варианты использования требуют использования сразу нескольких ролей Postgres. Ниже вы узнаете, как выполнить настройку в таких случаях.
Установка сервера 1С
Для установки сервера 1С необходимо сначала установить вспомогательные пакеты, затем сам сервис. Дистрибутив необходимо скачать с сайта 1С — личного кабинета, доступного по подписке.
И так, выполним установку следующих пакетов:
apt-get install imagemagick unixodbc ttf-mscorefonts-installer
* где:
- imagemagick — набор программ для чтения и редактирования графических файлов.
- unixodbc — диспетчер драйверов для ODBC.
- ttf-mscorefonts-installer — набор шрифтов Microsoft.
В процессе установки система запросит принять лицензионное соглашение — выбираем Yes.
Копируем на сервер архив с дистрибутивом для 1С, который был загружен с сайта 1С или получен от поставщика. Распаковываем архив командой:
tar zxvf 8.3.16.1148_deb64.tar.gz
* где 8.3.16.1148_deb64.tar.gz — имя архива с 1С версии 8.3.16. В архиве пакеты deb (для Linux на основе Debian) для 64-х разрядной системы.
Устанавливаем все пакеты, которые находились в архиве командой:
dpkg -i 1c-enterprise*.deb
Разрешаем автозапуск сервиса 1С и стартуем его:
systemctl enable srv1cv83
systemctl start srv1cv83
Необходимо убедиться, что сервис запустился:
systemctl status srv1cv83
Если мы получим ошибку «srv1cv83.service not found», находим исполняемый файл srv1cv83:
find /opt -name srv1cv83
В моем случае он был по пути:
/opt/1cv8/x86_64/8.3.16.1148/srv1cv83
Делаем симлинк в каталоге /etc/init.d на найденный файл:
ln -s /opt/1cv8/x86_64/8.3.16.1148/srv1cv83 /etc/init.d/srv1cv83
Снова запускаем сервис:
systemctl start srv1cv83
Настройка типов данных
Откройте консоль PostgreSQL для базы данных template1:
Если при попытке запустить psql на экране появится сообщение not found», попробуйте указать полный путь к этому файлу в подкаталоге bin; например на Mac OS X: /Library/PostgreSQL/9.1/bin/psql.
Linux:
Выполните в консоли две следующие команды:
su - postgres psql -d template1 #open the database template1
Mac:
Под пользователем postgres выполните следующие две команды:
Sudo su - postgres Psql -d template1
При первом запуске команды psql на OS X 10.8.X вы можете увидеть сообщение об ошибке:
dyld: Library not loaded: @loader_path/../lib/libssl.dylib Referenced from: /usr/lib/libpq.5.dylib Reason: Incompatible library version: libpq.5.dylib requires version 1.0.0 or later, but libssl.0.9.8.dylib provides version 0.9.8
Это связано с тем, как Homebrew в Mac OS X и Mountain Lion конфликтуют с определенными системными библиотеками. Решение этой проблемы заключается в том, чтобы скопировать и связать версии библиотеки. PostgreSQL упакован в /usr/lib, где библиотеки хранятся в Mountain Lion.
sudo cp /Library/PostgreSQL/9.1/lib/libssl.1.0.0.dylib /usr/lib sudo cp /Library/PostgreSQL/9.1/lib/libcrypto.1.0.0.dylib /usr/lib sudo ln -fs /usr/lib/libssl.1.0.0.dylib /usr/lib/libssl.dylib sudo ln -fs /usr/lib/libcrypto.1.0.0.dylib /usr/lib/libcrypto.dylib
Еще одним решением может стать пересмотр Homebrew и проверка совместимости с Mountain Lion.
При установке PostgreSQL на Mac OS X в один клик создается ярлык для оболочки PostgreSQL в каталоге Applications / PostgreSQL 9.0 /. Нажмите SQL Shell (psql).app, чтобы открыть новое окно терминала с запущенным psql.
Из этого окна терминала можно получить доступ к базе данных template1, введя:
psql c template1
Windows:
psql запускается из командной строки (cmd) Windows. Убедитесь, что путь к папке postgres bin хранится в переменной PATH, или просто вызовите ее с полным путем к месту расположения исполняемого файла psql:
psql -d template1 -U postgres
Выполните команды консоли:
CREATE FUNCTION pg_catalog.text(integer) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(int4out($1));'; CREATE CAST (integer AS text) WITH FUNCTION pg_catalog.text(integer) AS IMPLICIT; COMMENT ON FUNCTION pg_catalog.text(integer) IS 'convert integer to text'; CREATE FUNCTION pg_catalog.text(bigint) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(int8out($1));'; CREATE CAST (bigint AS text) WITH FUNCTION pg_catalog.text(bigint) AS IMPLICIT; COMMENT ON FUNCTION pg_catalog.text(bigint) IS 'convert bigint to text';
Добавление, запрос и удаление данных из таблицы
Теперь, когда у нас есть таблица, мы можем добавить в неё данные.
Сначала добавим горку (slide) и качели (swing). Для того, чтобы это сделать, нам необходимо указать имя таблицы, названия столбцов, а также сами данные:
При вводе данных необходимо иметь в виду некоторые наиболее распространённые ошибки. Прежде всего, названия столбцов должны быть указаны без кавычек, а данные для этих столбцов — с кавычками.
Также надо иметь в виду, что мы не указываем значения для столбца . Это значение будет задаваться автоматически при добавление новой записи в таблицу.
Мы можем просмотреть добавленные данные следующей командой:
Как видно из этого консольного вывода, наше поле было успешно заполнено автоматически, а остальные поля также получили корректные значения.
Если горка на нашей детской площадке сломалась и нам необходимо её убрать, мы можем удалить эту запись из нашей базы следующей командой:
Теперь при просмотре содержимого таблицы мы увидим, что запись горки более в ней не представлена:
Настройки на Master
В данной статье мы будем настраивать серверы с IP-адресами 192.168.1.10 (первичный или master) и 192.168.1.11 (вторичный или slave).
Переходим на сервер, с которого будем реплицировать данные (мастер) и выполняем следующие действия.
Создаем пользователя в PostgreSQL
Входим в систему под пользователем postgres:
su — postgres
Создаем нового пользователя для репликации:
createuser —replication -P repluser
* система запросит пароль — его нужно придумать и ввести дважды. В данном примере мы создаем пользователя repluser.
Выходим из оболочки пользователя postgres:
exit
Настраиваем postgresql
Смотрим расположение конфигурационного файла postgresql.conf командой:
su — postgres -c «psql -c ‘SHOW config_file;'»
В моем случае система вернула строку:
/etc/postgresql/9.6/main/postgresql.conf
* конфигурационный файл находится по пути /etc/postgresql/9.6/main/postgresql.conf.
Открываем конфигурационный файл postgresql.conf.
vi /etc/postgresql/9.6/main/postgresql.conf
* мы открываем файл, который получили sql-командой SHOW config_file;.
Редактируем следующие параметры:
listen_addresses = ‘localhost, 192.168.1.10’
wal_level = replica
max_wal_senders = 2
max_replication_slots = 2
hot_standby = on
hot_standby_feedback = on
* где
- 192.168.1.10 — IP-адрес сервера, на котором он будем слушать запросы Postgre;
- wal_level указывает, сколько информации записывается в WAL (журнал операций, который используется для репликации);
- max_wal_senders — количество планируемых слейвов;
- max_replication_slots — максимальное число слотов репликации (данный параметр не нужен для postgresql 9.2 — с ним сервер не запустится);
- hot_standby — определяет, можно или нет подключаться к postgresql для выполнения запросов в процессе восстановления;
- hot_standby_feedback — определяет, будет или нет сервер slave сообщать мастеру о запросах, которые он выполняет.
Открываем конфигурационный файл pg_hba.conf — он находитсяч в том же каталоге, что и файл postgresql.conf:
vi /etc/postgresql/9.6/main/pg_hba.conf
Добавляем следующие строки:
host replication repluser 127.0.0.1/32 md5
host replication repluser 192.168.1.10/32 md5
host replication repluser 192.168.1.11/32 md5
* данной настройкой мы разрешаем подключение к базе данных replication пользователю repluser с локального сервера (localhost и 192.168.1.10) и сервера 192.168.1.11.
Перезапускаем службу postgresql:
systemctl restart postgresql
* обратите внимание, что название для сервиса в системах Linux может различаться