- Установка postgresql linux debian
- Installation
- User access
- New User and database
- Migration
- Documentation
- Tutorial files
- Listing existing database clusters
- pg_ctl replacement
- File locations
- Changing Debian default installation
- See Also
- External Links
- Linux downloads (Debian)
- PostgreSQL Apt Repository
- Included in distribution
- Установка PostgreSQL в Debian 10
- Установка PostgreSQL на Debian 10
- Настройка PostgreSQL
- Выводы
Установка postgresql linux debian
- PostgreSQL, also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance.
PostgreSQL has extensive and good help that should be the first source of information regarding this database product. This page outlines main differences to generic PostgreSQL installation used by Debian.
- Installation
- User access
- Migration
- Documentation
- Tutorial files
- Listing existing database clusters
- pg_ctl replacement
- File locations
- Changing Debian default installation
- See Also
- External Links
Installation
# apt install postgresql postgresql-client
Please note that the procedural languages are installed separately (plpgsql comes by default). Search Debian packages to find the list of possibilities:
User access
Both the default database user and default database are called postgres.
You will need administrative rights.
If your system uses sudo to get administrative rights:
New User and database
Create a regular system user account using adduser (skip this step to use an existing account):
# adduser mypguser #from regular shell
Switch to user postgres and create a new database user and a database:
# su - postgres $ createuser --pwprompt mypguser #from regular shell $ createdb -O mypguser mypgdatabase
Connect as user mypguser to new database
# su - mypguser $ psql mypgdatabase
or, if the OS user name is not the same as the database user name:
$ psql -d mypgdatabase -h localhost -U mypguser
you can also use a ~/.pgpass file
$ echo 'hostname:port:mypgdatabase:mypguser:mypgpassword' >> ~/.pgpass
Now you can easily connect with
$ psql -d mypgdatabase -h localhost -U mypguser
Migration
See /usr/share/doc/postgresql-common/README.Debian.gz section «Default clusters and upgrading»
Alternatively, you can adapt and use :
Documentation
To get an overview about Debian’s PostgreSQL architecture, instructions for a quick start, and pointers to the programs and manpages, have a look at /usr/share/doc/postgresql-common/README.Debian.gz.
Tutorial files
PostgreSQL documentation points to tutorial, which is included in the postgresql-doc package. Once the package is installed, to get more information look at /usr/share/doc/postgresql-doc-[version]/tutorial/README.
Listing existing database clusters
Use pg_lsclusters command to check installed clusters and obtain some basic information such as: version (major version), name, port, status (online or down), owner, data directory and log file.
pg_ctl replacement
pg_ctl is a PostgreSQL command line control program that can be used to control the database. Debian has made a Perl-wrapper for the pg_ctl called /usr/bin/pg_ctlcluster. Use the pg_ctlcluster whenever you need the pg_ctl. To customize the behavior check the /etc/postgresql/[version]/[cluster]/pg_ctl.conf
Debian installs SysV-init compatible (standard) start-up script /etc/init.d/postgresql-[version]. It can be used to start, stop, restart and reload the system. It calls pg_ctlcluster internally.
File locations
Debian splits the database configuration from the database files, opposed to generic PostgreSQL installation that puts everything under same directory. Note that Debian allows multiple clusters and even different versions of PostgreSQL to co-exist in same host.
Configuration files: /etc/postgresql/[version]/[cluster]/
Binaries: /usr/lib/postgresql/[version]
Data files: /var/lib/postgresql/[version]/[cluster]
Log files: Installing PostgreSQL creates log directory /var/log/postgresql/. Starting the database engine creates log file with name postgresql-[version]-[cluster].log.
Changing Debian default installation
Debian PostgreSQL installation automatically calls initdb i.e. it initializes the cluster with default encoding and locale. To change the locale (and possibly other options in initdb), delete the existing default cluster and create a new one:
The following operation obviously deletes everything you had in cluster databases. Perform this operation right after you have installed the base package.
pg_dropcluster --stop 11 main
pg_createcluster --locale de_DE.UTF-8 --start 11 main
Check the Locale page to see how to add more locales.
See Also
External Links
Linux downloads (Debian)
PostgreSQL is available in all Debian versions by default. However, the stable versions of Debians «snapshot» a specific version of PostgreSQL that is then supported throughout the lifetime of that Debian version. The PostgreSQL project also maintains an apt repository with all supported of PostgreSQL available.
PostgreSQL Apt Repository
If the version included in your version of Debian is not the one you want, you can use the PostgreSQL Apt Repository. This repository will integrate with your normal systems and patch management, and provide automatic updates for all supported versions of PostgreSQL throughout the support lifetime of PostgreSQL.
The PostgreSQL apt repository supports the currently supported stable versions of Debian:
on the following architectures:
To use the apt repository, follow these steps:
# Create the file repository configuration: sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' # Import the repository signing key: wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - # Update the package lists: sudo apt-get update # Install the latest version of PostgreSQL. # If you want a specific version, use 'postgresql-12' or similar instead of 'postgresql': sudo apt-get -y install postgresql
For more information about the apt repository, including answers to frequent questions, please see the apt page on the wiki.
Included in distribution
Debian includes PostgreSQL by default. To install PostgreSQL on Debian, use the apt-get (or other apt-driving) command:
apt-get install postgresql-12
The repository contains many different packages including third party addons. The most common and important packages are (substitute the version number as required):
postgresql-client-12 | client libraries and client binaries |
---|---|
postgresql-12 | core database server |
libpq-dev | libraries and headers for C language frontend development |
postgresql-server-dev-12 | libraries and headers for C language backend development |
Copyright © 1996-2023 The PostgreSQL Global Development Group
Установка PostgreSQL в Debian 10
PostgreSQL (иногда именуемая Postgres) — это самая продвинутая, универсальная, объектно-ориентированная система баз данных с открытым исходным кодом с проверенной архитектурой, которая работает на всех основных операционных системах. Это высокопроизводительная, стабильная, масштабируемая и расширяемая система баз данных, которая обеспечивает хорошую целостность данных и поддерживает мощные дополнения.
Важно то, что PostgreSQL позволяет вам определять свои собственные типы данных, добавлять пользовательские функции, даже писать код на разных языках программирования, таких как C/C++, Java, и т. д., без перекомпиляции вашей базы данных. PostgreSQL используется известными техническими компаниями, такими как Apple, Fujitsu, Red Hat, Cisco, Juniper Network и т. д. В этой статье мы покажем вам, как установить, защитить и настроить сервер баз данных PostgreSQL 11 Debian 10.
Установка PostgreSQL на Debian 10
Чтобы установить PostgreSQL Debian 10, используйте менеджер пакетов APT, который установит и сервер и клиент PostgreSQL 11.
apt install postgresql-11 postgresql-client-11
В Debian, база данных postgres инициализируется сразу после завершения установки пакета, как показано на следующем снимке.
Чтобы проверить, действительно ли база данных Postgres инициализирована, вы можете использовать утилиту pg_isready, которая проверяет статус соединения сервера PostgreSQL 11 следующим образом:
Кроме того, в systemd служба Postgres также запускается автоматически и включается при загрузке системы. Чтобы убедиться, что служба работает нормально, выполните следующую команду.
systemctl status postgresql
Далее следуют другие полезные команды systemctl для управления службой Postgres в systemd.
systemctl start postgresql
systemctl restart postgresql
systemctl stop postgresql
Чтобы перечитать конфигурацию после перезагрузки выполните:
systemctl reload postgresql
Настройка PostgreSQL
По умолчанию Postgres использует концепцию ролей для управления разрешениями доступа к базе данных, а роли базы данных концептуально полностью отделены от пользователей операционной системы. Роль может быть пользователем или группой, а роль с правом входа в сиcтему называется пользователем.
Только что инициализированная система всегда содержит одну предопределенную роль, называемую postgres, и имеет то же имя, что и учетная запись пользователя операционной системы, называемая postgres, которая используется для доступа к psql (оболочка Postgres) и другим программам баз данных.
Учетная запись пользователя системы Postgres не защищена паролем, для ее защиты вы можете создать пароль с помощью утилиты passwd.
Кроме того, роль Postgres (или, если угодно, суперпользователь базы данных) по умолчанию не защищена. Вам также необходимо защитить ее паролем. Теперь переключитесь на учетную запись пользователя системы postgres и роль postgres (не забудьте установить надежный и безопасный пароль), как показано ниже.
su — postgres
psql -c «ALTER USER postgres WITH PASSWORD ‘новый_пароль’;»
Далее выйдите из учетной записи postgres, чтобы продолжить настройку. Основной файл конфигурации Postgres находится по пути /etc/postgresql/11/main/postgresql.conf. В дополнение к этому файлу Postgres использует два других файла конфигурации, которые управляют аутентификацией клиента.
Аутентификация клиента контролируется файлом конфигурации /etc/postgresql/11/main/pg_hba.conf. Postgres предоставляет множество различных методов аутентификации клиента, включая аутентификацию на основе пароля. Клиентские соединения аутентифицируются на основе адреса хоста клиента, базы данных и пользователя.
Если вы решите использовать аутентификацию на основе пароля, вы можете воспользоваться одним из этих методов: md5 или пароль, работающий аналогичным образом, за исключением способа передачи пароля по соединению, а именно, хэширования MD5 и открытого текста соответственно.
Использование аутентификации по паролю md5 предотвращает перехват паролей хакерами и позволяет избежать хранения паролей на сервере в виде простого текста. Парольный метод можно использовать только в том случае, если соединение защищено шифрованием SSL.
В этом руководстве мы покажем, как настроить аутентификацию по паролю md5 для аутентификации клиента.
Найдите следующую строку и измените метод аутентификации на md5, как показано на скриншоте.
Сохраните изменения в файле и выйдите из него. Затем примените последние изменения, перезапустив службу Postgres следующим образом.
systemctl restart postgresql
Создание новой базы данных и роли базы данных/пользователя в PostgreSQL
В этом последнем разделе мы покажем, как создать нового пользователя базы данных и роль базы данных для управления им. Сначала переключитесь на учетную запись postgres и откройте оболочку Postgres следующим образом.
Чтобы создать базу данных с именем «test_db», выполните следующую SQL команду:
Затем создайте пользователя базы данных (роль с правом входа), который будет управлять новой базой данных:
CREATE USER test_user PASSWORD ‘новый_пароль’;
На этом настройка postgresql Debian 10 практически завершена. Чтобы подключиться к test_db от имени пользователя test_user, выполните:
psql -d test_db -U test_user
Для получения дополнительной информации см. Документацию PostgreSQL 11.
Выводы
На этом, пока что, все! В этой статье мы показали, как делается установка Postgresql Debian 10, а также как защитить и настроить полученный сервер баз данных. Есть ли у вас какие-либо вопросы или мысли, которыми хочется поделиться? Используйте форму комментариев ниже.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.