PostgreSQL — это одна из самых популярных систем управления реляционными базами данных с открытым исходным кодом. Она реализует язык запросов SQL и обеспечивает высокую стабильность, производительность и целостность данных. Вы можете использовать базу данных PostgreSQL для запуска критически важных приложений. PostgreSQL обладает такими функциями, как гнездовые транзакции, многоверсионный контроль параллелизма, наследование таблиц, асинхронная репликация, ссылочная целостность внешних ключей и многое другое.
В этом посте мы расскажем вам, как установить базу данных PostgreSQL на Ubuntu 22.04.
Начало работы
Сначала обновите все системные пакеты до последней версии с помощью следующей команды:
apt update -y apt upgrade -y
После обновления системы вы можете установить другие необходимые зависимости с помощью следующей команды:
apt install wget curl gnupg2 -y
После установки всех зависимостей можно приступать к установке InfluxDB.
Добавление репозитория PostgreSQL
По умолчанию последняя версия PostgreSQL недоступна в стандартном репозитории Ubuntu 22.04. Поэтому вам необходимо добавить официальный репозиторий PostgreSQL в вашу систему.
Вы можете добавить репозиторий PostgreSQL и ключ GPG с помощью следующей команды:
sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | tee /etc/apt/trusted.gpg.d/pgdg.asc &>/dev/null
Затем обновите репозиторий PostgreSQL с помощью следующей команды:
apt update -y
Установка PostgreSQL на Ubuntu 22.04
Теперь вы можете установить PostgreSQL 15, выполнив следующую команду:
apt install postgresql postgresql-client -y
После установки PostgreSQL проверьте статус PostgreSQL с помощью следующей команды:
systemctl status postgresql
Вы должны получить следующий результат:
? postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2022-12-05 14:28:18 UTC; 1min 57s ago
Main PID: 10824 (code=exited, status=0/SUCCESS)
CPU: 4ms
Dec 05 14:28:18 ubuntu2204 systemd[1]: Starting PostgreSQL RDBMS...
Dec 05 14:28:18 ubuntu2204 systemd[1]: Finished PostgreSQL RDBMS.
Чтобы проверить версию PostgreSQL, выполните следующую команду:
sudo -u postgres psql -c "SELECT version();"
Вы получите следующий результат:
version ----------------------------------------------------------------------------------------------------------------------------------- PostgreSQL 15.1 (Ubuntu 15.1-1.pgdg22.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0, 64-bit (1 row)
Настройка PostgreSQL для удаленного подключения
По умолчанию PostgreSQL разрешает подключения только с локального хоста. Если вы хотите разрешить удаленное подключение, то вам необходимо отредактировать конфигурационный файл PostgreSQL и определить метод аутентификации. Это можно сделать, отредактировав следующий файл:
nano /etc/postgresql/15/main/pg_hba.conf
Измените следующие строки:
local all all trust host all all 0.0.0.0/0 md5
Сохраните и закройте файл, когда закончите. Затем отредактируйте основной конфигурационный файл PostgreSQL и измените порт прослушивания:
nano /etc/postgresql/15/main/postgresql.conf
Измените следующую строку:
listen_addresses='*'
Сохраните и закройте файл, затем перезапустите службу PostgreSQL, чтобы применить изменения:
systemctl restart postgresql
Создание административного пользователя
Неплохо создать административного пользователя для управления другими пользователями и базами данных. Сначала войдите в оболочку PostgreSQL, выполнив следующую команду:
sudo -u postgres psql
После входа в систему вы получите следующую оболочку:
psql (15.1 (Ubuntu 15.1-1.pgdg22.04+1)) Type "help" for help. postgres=#
Далее создайте пользователя admin и установите пароль с помощью следующей команды:
CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'password';
Затем проверьте созданного пользователя с помощью следующей команды:
\du
Вы должны увидеть следующий результат:
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
root | Superuser, Create role, Create DB | {}
Создание базы данных и пользователя в PostgreSQL
В этом разделе мы покажем вам, как создать базу данных и пользователя в PostgreSQL.
Чтобы создать базу данных с именем wpdb в PostgreSQL, выполните следующую команду:
create database wpdb;
Чтобы создать пользователя с именем wpuser в PostgreSQL, выполните следующую команду:
create user wpuser with encrypted password 'password';
Чтобы предоставить все привилегии базе данных wpdb, выполните следующую команду:
grant all privileges on database wpdb to wpuser;
Список всех баз данных можно получить с помощью следующей команды:
\l
Вы должны получить список всех баз данных в следующем выводе:
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------+----------+----------+-------------+-------------+------------+-----------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
wpdb | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =Tc/postgres +
| | | | | | | postgres=CTc/postgres+
| | | | | | | wpuser=CTc/postgres
(4 rows)
Как подключить PostgreSQL с удаленной машины
На данном этапе PostgreSQL установлен и настроен на разрешение подключений с удаленных узлов. Чтобы проверить удаленное подключение PostgreSQL, выполните следующую команду:
psql 'postgres://wpuser:password@postgres-ip-address:5432/wpdb?sslmode=disable'
Заключение
Поздравляем! Вы успешно установили и настроили сервер PostgreSQL на Ubuntu 22.04. Теперь вы можете использовать PostgreSQL в производственной среде для достижения высокой производительности и целостности данных. Не стесняйтесь спрашивать меня, если у вас возникнут вопросы.