Установка postgresql в ubuntu 20.04

Содержание:

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

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

Добавляя данные в таблицу, помните:

  • Имя таблицы не нужно брать в кавычки.
  • Значения, которые вставляются в столбцы, необходимо взять в кавычки.
  • В столбец equip_id не нужно добавлять данные; его значения генерируются автоматически.

Просмотрите добавленные данные:

Как видите, столбец equip_id был заполнен автоматически. Чтобы удалить значение (к примеру, slide), используйте команду:

Проверьте свою  таблицу еще раз:

Значения slide больше нет в таблице.

Создание ролей PostgreSQL

Для того чтобы различать пользователей и их права на доступ к базам данных, Postgres использует концепцию ролей (англ. roles). Ролью может быть отдельный пользователь или группа пользователей БД. После первой установки на сервер PostgreSQL предоставляет стандартного пользователя по имени postgres.

Даная система имеет два метода авторизации: ident и md5. По умолчанию используется метод ident, позволяющий привязать пользователя сервера к аккунту Postgres. Альтернативный метод md5, запрашивающий у клиента зашифрованный пароль, можно настроить в конфигурациях авторизации в /etc/postgresql/9.1/main/pg_hba.conf.

Чтобы создать нового пользователя, откройте аккаунт стандартного пользователя:

Войдя в систему как стандартный пользователь, добавьте роль в систему PostgreSQL:

Чтобы защитить пользователя паролем, добавьте в команду createuser флаг –pwprompt:

Веб-публикации

Сервер 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, куда мы опубликовали базу.

Step 5 — Opening a Postgres Prompt with the New Role

To log in with based authentication, you’ll need a Linux user with the same name as your Postgres role and database.

If you don’t have a matching Linux user available, you can create one with the command. You will have to do this from your non-root account with privileges (meaning, not logged in as the postgres user):

Once this new account is available, you can either switch over and connect to the database by typing:

Or, you can do this inline:

This command will log you in automatically, assuming that all of the components have been properly configured.

If you want your user to connect to a different database, you can do so by specifying the database like this:

Once logged in, you can get check your current connection information by typing:

This is useful if you are connecting to non-default databases or with non-default users.

Шаг 5 — Открытие командной строки Postgres с новой ролью

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

Если у вас нет соответствующего пользователя Linux, то вы можете создать его с помощью команды . Вы должны воспользоваться учетной записью без прав root с привилегиями (т. е. не выполняя вход в качестве пользователя postgres):

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

Либо же вы можете сделать следующее:

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

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

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

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

Conclusion

You are now set up with PostgreSQL on your Ubuntu 14.04 server. However, there is still much more to learn with Postgres. Here are some more guides that cover how to use Postgres:

  • A comparison of relational database management systems
  • Learn how to create and manage tables with Postgres
  • Get better at managing roles and permissions
  • Craft queries with Postgres with Select
  • Install phpPgAdmin to administer databases from a web interface
  • Learn how to secure PostgreSQL
  • Set up master-slave replication with Postgres
  • Learn how to backup a Postgres database

<div class=“author”>By Justin Ellingwood</div>

Шаг 3 — Создание новой роли

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

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

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

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

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

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

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

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

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

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

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

Данная таблица описывает всё оборудование детской площадки. Таблица начинается со столбца ID, который указывает порядковый номер записи. Этот столбец был ограничен по PRIMARY KEY, то есть значения должны быть уникальными и не должны быть нулём.

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

Длина поля столбцов equip_id и install_date не ограничена; дело в том, что задавать длину некоторых столбцов необязательно, так как она автоматически задаётся типом данных.

Просмотреть таблицу можно при помощи команды:

playground_equip_id_seq имеет тип данных sequence. Это представление типа данных serial, установленного для столбца equip_id. Этот тип определяет следующий номер в последовательности.

Чтобы просмотреть таблицу вне этого типа данных, введите:

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

Теперь попробуйте добавить в таблицу данные.

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

Добавляя данные в таблицу, помните:

  • Имя таблицы не нужно брать в кавычки.
  • Значения столбцов необходимо взять в кавычки.
  • В столбец equip_id не нужно добавлять данные; его значения генерируются автоматически.

Просмотрите добавленные данные:

Как видите, столбец equip_id был заполнен автоматически. Чтобы удалить значение (к примеру, slide), используйте команду:

Проверьте таблицу:

Повышение привилегий

Некоторые операционные системы (к примеру, Mac OS X и Linux) предложат вам повысить ваши привилегии перед запуском программы установки. Введите необходимые имя пользователя и пароль. (примеч: После стандартного предупреждения Windows о том, что мы пытаемся запустить приложение от стороннего разработчика, на что мы отвечаем утвердительно, начинается процесс установки. В случае если сперва появляется сообщение о том, что Windows настраивает среду выполнения Microsoft Visual C++, можно предположить, что эта среда выполнения распространяется с установщиком PostgreSQL для Windows, потому что PostgreSQL на платформе Windows компилировался на Microsoft Visual C++.)

Шаг 5 — Открытие командной строки Postgres с новой ролью

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

Если у вас нет соответствующего пользователя Linux, то вы можете создать его с помощью команды . Вы должны воспользоваться учетной записи без прав root с привилегиями (т.е. не выполняя вход в качестве пользователя postgres):

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

Либо же вы можете сделать следующее:

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

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

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

Замечания перед установкой для Mac OS X

Установка на Mac OS X немного отличается от других платформ, например, дистрибутив распространяется в другом формате и могут потребоваться некоторые дополнительные настройки по сравнению с другими операционными системами.

  • The Mac OS X installer is an App Bundle, which is a set of files and directories in a prescribed format. To ensure the App Bundle can be downloaded, it is packaged inside a disk image (.dmg) file. To extract the installer, simply mount the disk image and copy the installer to the desired location, or run it directly from the disk image if preferred.
  • Mac OS X ships with shared memory settings which are too low for running PostgreSQL by default. The installer will detect this, and if possible reconfigure shared memory and then prompt you to reboot the system and rerun the installation. For more information, please see the README file in the distribution disk image.

Создание роли и базы данных PostgreSQL

Вы можете создавать новые роли из командной строки с помощью команды . Только суперпользователи и роли с привилегией могут создавать новые роли.

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

  1. Создайте новую роль PostgreSQL

    Следующая команда создаст новую роль с именем john:

  2. Создайте новую базу данных PostgreSQL

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

  3. Предоставлять привилегии

    Чтобы предоставить пользователю права доступа к базе данных, созданной на предыдущем шаге, подключитесь к оболочке 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»), выберите ее и нажмите на кнопку «Перезапустить службу».

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

По умолчанию Postgres использует концепцию ролей для осуществления аутентификации и авторизации. Они, в некотором роде, подобны Unix аккаунтам, но Postgres не делает различий между пользователями и группами, а вместо этого предпочитает более гибкий термин “роль”.

После установки Postgres настраивает так называемую идентичную аутентификацию (ident authentication). Это означает, что Postgres ассоциирует свои роли с подходящими Unix/Linux аккаунтами. Если роль существует в Postgres, пользователь с этим же именем в Unix/Linux сможет осуществлять вход под этой ролью.

Существует несколько способов использовать это для доступа к Postgres.

Переключение на аккаунт postgres

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

Переключимся на использование аккаунта на вашем сервере этой командой:

Теперь вы можете получить доступ к командной строке Postgres напечатав команду:

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

Для выхода из PostgreSQL напечатайте:

После этого вы должны увидеть стандартное приглашение командной строки Linux (Linux command prompt).

Доступ к командной строке Postgres без переключения аккаунтов

Вы также можете выполнять команды напрямую с помощью .

Например, выше мы хотели получить доступ к интерфейсу командной строки Postgres. Мы можем сделать это одной строкой, используя команду от имени пользователя с :

Это позволит вам войти в интерфейс командной строки Postgres без использования оболочки .

Для выхода из интерактивной сессии Postgres напечатайте:

Настройки на 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 может различаться

Роли и методы аутентификации PostgreSQL

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

  • Доверие — роль может подключаться без пароля, если выполняются условия, определенные в .
  • Пароль — роль может подключиться, указав пароль. Пароли могут быть сохранены как , и (открытый текст).
  • Ident — поддерживается только для соединений TCP / IP. Он работает путем получения имени пользователя операционной системы клиента с дополнительным отображением имени пользователя.
  • Peer — То же, что и Ident, но поддерживается только для локальных подключений.

Аутентификация клиента PostgreSQL определяется в файле конфигурации с именем . По умолчанию PostgreSQL использует метод одноранговой аутентификации для локальных подключений.

Пользователь создается автоматически при установке PostgreSQL. Этот пользователь является суперпользователем для экземпляра PostgreSQL и эквивалентен пользователю root MySQL.

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

Отсюда вы можете взаимодействовать со своим экземпляром PostgreSQL. Чтобы выйти из оболочки PostgreSQL, введите:

Другой способ получить доступ к приглашению PostgreSQL без переключения пользователей — использовать команду :

Как правило, вы должны входить на сервер базы данных как только с локального хоста.

Шаг 4 — Создание новой базы данных

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

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

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

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

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

Аутентификация новой роли PostgreSQL

Чтобы выполнить ident аутентификацию PostgreSQL, нужно иметь пользователя системы Linux, чье имя совпадает с именем роли и БД.

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

После этого можно перейти в сессию нового пользователя и подключиться к БД:

Или же подключиться к БД напрямую:

Если все предыдущие настройки были выполнены правильно, команда выполнит автоматическое подключение к БД.

Чтобы подключиться к другой БД, нужно указать её имя:

Чтобы получить информацию о текущем подключении, введите:

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

Шаг 6 — Создание и удаление таблиц

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

Базовый синтаксис создания таблиц выглядит следующим образом:

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

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

Для демонстрационных целей необходимо создать следующую таблицу:

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

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

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

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

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

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

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

Установка 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/

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

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

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

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

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

Длина поля столбцов equip_id и install_date не ограничена; дело в том, что задавать длину некоторых столбцов необязательно, так как она автоматически задаётся типом данных.

Столбцы type и color не могут быть пустыми. Столбец location ограничен восемью возможными значениями. Столбец date указывает дату установки оборудования.

Просмотреть таблицу можно при помощи команды:

playground_equip_id_seq имеет тип данных sequence. Это представление типа данных serial, установленного для столбца equip_id. Этот тип определяет следующий номер в последовательности.

Чтобы просмотреть таблицу вне этого типа данных, введите:

Установка phppgadmin

Не всегда удобно управлять базой данных из терминала. Иногда нужно получить доступ ко всему через веб-интерфейс. Для этого есть программа phppgadmin, но для ее работы нужен веб-сервер Apache. Для установки программы наберите:

Когда установка будет завершена откройте файл /etc/apache2/conf-available/phppgadmin.conf и закоментируйте строку:

А вместо нее добавьте:

Это необходимо, чтобы открыть доступ к этому адресу не только с локального компьютера, но и их других устройств сети. Заметьте, что вы не сможете войти под учетной записью postgres, это сделано из соображений безопасности. Когда завершите, перезагрузите Apahce:

Step 8 — Adding and Deleting Columns from a Table

After creating a table, you can modify it to add or remove columns relatively easily. Add a column to show the last maintenance visit for each piece of equipment by typing:

The next time you view your table information again, the new column will have been added (but no data will have been entered):

To delete a column, you can enter an SQL statement very similar to the one you used to add the column. If you find that your work crew uses a separate tool to keep track of maintenance history, you can delete of the column by typing:

This deletes the column and any values found within it, but leaves all the other data intact.

Конфигурационный файл postgresql.conf

Главный конфигурационный файл для кластера PostgreSQL – это postgresql.conf, в разных системах он может находится в разных местах. Так как мы собирали сервер из исходников и не меняли путь хранения этого файла, то по умолчанию он будет находится в каталоге PGDATA:

postgres@s-pg13:~$ echo $PGDATA
/usr/local/pgsql/data

postgres@s-pg13:~$ ls -l $PGDATA/postgresql.conf
-rw------- 1 postgres postgres 28023 июн 21 15:15 /usr/local/pgsql/data/postgresql.conf

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

Самый точный способ узнать расположение этого файла, посмотреть из терминала psql:

postgres@s-pg13:~$ psql
Timing is on.
psql (13.3)
Type "help" for help.

postgres@postgres=# SHOW config_file;
              config_file
---------------------------------------
 /usr/local/pgsql/data/postgresql.conf
(1 row)

Time: 0,391 ms
postgres@postgres=# \q

postgres@s-pg13:~$ pg_ctl reload
server signaled

Второй способ – из терминала psql:

postgres@s-pg13:~$ psql
Timing is on.
psql (13.3)
Type "help" for help.

postgres@postgres=# SELECT pg_reload_conf();
 pg_reload_conf
----------------
 t
(1 row)

Time: 0,555 ms

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

How To Update Data in a Table

We know how to add records to a table and how to delete them, but we haven’t covered how to modify existing entries yet.

You can update the values of an existing entry by querying for the record you want and setting the column to the value you wish to use. We can query for the “swing” record (this will match every swing in our table) and change its color to “red”. This could be useful if we gave it a paint job:

<pre>
UPDATE playground SET color = ‘red’ WHERE type = ‘swing’;
</pre>

We can verify that the operation was successful by querying our data again:

equip_id type color location install_date
2 swing red northwest 2010-08-16

As you can see, our slide is now registered as being red.

Установите PostgreSQL в Ubuntu

На момент написания этой статьи последней версией PostgreSQL, доступной в официальных репозиториях Ubuntu, была PostgreSQL версии 10.4.

Чтобы установить PostgreSQL на свой сервер Ubuntu, выполните следующие действия:

  1. Установка PostgreSQL

    Обновите локальный индекс пакета и установите сервер PostgreSQL вместе с пакетом Contrib PostgreSQL, который предоставляет несколько дополнительных функций для базы данных PostgreSQL:

  2. Проверка установки PostgreSQL

    После завершения установки служба PostgreSQL запустится автоматически.

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

psql — это интерактивная утилита командной строки, которая позволяет вам взаимодействовать с сервером PostgreSQL.

2: Создание кластера PostgreSQL

Нам нужно создать новый кластер базы данных PostgreSQL, прежде чем начать использовать Postgres. Кластер баз данных – это набор баз, которые управляются одним экземпляром сервера. Чтобы создать кластер, нужно создать ряд каталогов, в которые будут помещены данные БД, создать таблицы и базы данных template1 и postgres.

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

Создайте новый кластер PostgreSQL с помощью initdb:

Вы увидите следующий вывод:

Теперь запустите и включите сервис PostgreSQL с помощью systemctl:

Вы увидите такой вывод:

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

6: Аутентификация новой роли PostgreSQL

Чтобы выполнить ident аутентификацию PostgreSQL, нужно иметь пользователя системы Linux, чье имя совпадает с именем роли и БД.

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

После этого можно перейти в сессию нового пользователя и подключиться к БД:

Или же подключиться к БД напрямую:

Если все предыдущие настройки были выполнены правильно, команда автоматически подключится к БД.

Чтобы подключиться к другой БД, нужно указать её имя:

Чтобы получить информацию о текущем подключении, введите:

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

Действия после установки postgres

Если мы установили PostgreSQL Pro версию, выполним только первую настройку.

Пароль для пользователя postgres

Задаем пароль для пользователя postgres:

sudo -u postgres psql -U postgres -d template1 -c «ALTER USER postgres PASSWORD ‘password'»; history -d $((HISTCMD-1))

* данную команду мы запускаем под пользователем postgres; мы задаем пароль password для postgresql-пользователя postgres. Дополнительная команда history -d $((HISTCMD-1)) удалить из истории строку с паролем.

Остальные настройки выполняем для PostgreSQL не Pro версии.

Разрешаем автозапуск сервиса баз данных и стартуем его:

systemctl enable postgresql —now

Блокировка обновлений PostgreSQL

Так как для 1С устанавливается специальная сборка СУБД, необходимо запретить ее обновление. В противном случае будет установлен обычныйpostgresql, что приведет к потери работоспособности сервера.

Смотрим версию установленного сервера баз данных:

dpkg -l | grep postgresql

Пример ответа:

ii  postgresql-10            10.10-4.1C …
ii  postgresql-client-10     10.10-4.1C …

И так, у нас установлена версия 10.10-4.1C. Вводим:

dpkg -l | grep 10.10-4.1C | awk -F’ ‘ ‘{print $2}’ | xargs apt-mark hold

* где 10.10-4.1C — версия установленного PostgreSQL. Команда apt-mark hold блокируем установку обновлений для пакетов версии 10.10-4.1C.

Также добавим:

apt-mark hold postgresql-common postgresql-client-common

Роли и методы аутентификации PostgreSQL

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

  • Доверие — с помощью этого метода роль может подключаться без пароля, если соблюдаются критерии, определенные в .
  • Пароль — роль может подключиться, указав пароль. Пароли могут быть сохранены как и (открытый текст)
  • Ident — этот метод поддерживается только для соединений TCP / IP. Работает путем получения имени пользователя операционной системы клиента с необязательным отображением имени пользователя.
  • Peer — То же, что и Ident, но поддерживается только для локальных подключений.

Аутентификация клиента PostgreSQL определяется в файле конфигурации с именем . По умолчанию для локальных подключений PostgreSQL настроен на использование метода одноранговой аутентификации.

Пользователь создается автоматически при установке PostgreSQL. Этот пользователь является суперпользователем для экземпляра PostgreSQL и эквивалентен корневому пользователю MySQL.

Чтобы войти на сервер PostgreSQL как пользователь postgres, сначала вам нужно переключиться на пользователя postgres, а затем вы можете получить доступ к приглашению PostgreSQL с помощью утилиты :

Отсюда вы можете взаимодействовать со своим экземпляром PostgreSQL. Чтобы выйти из оболочки PostgreSQL, введите:

Вы также можете получить доступ к командной строке PostgreSQL, не переключая пользователей, с помощью команды :

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector