Как установить PostgreSQL 13 в Ubuntu 20.04 | 18.04
PostgreSQL — очень популярная система управления объектно-реляционными базами данных (СУБД) с открытым исходным кодом, созданная для гарантии надежности, эффективности и целостности данных. Разработка ведется уже более 30 лет, и проект заслужил прочную репутацию благодаря надежности, функциональности и производительности. В этом руководстве мы объясним, как вы можете установить и настроить сервер базы данных PostgreSQL 13 на сервере Linux Ubuntu 20.04 | 18.04.
PostgreSQL используется тысячами компаний для выполнения платежных транзакций, огромного трафика веб-сайтов, платформ электронной коммерции и т. Д. Он также позволяет добавлять пользовательские функции, разработанные с использованием таких языков программирования, как Java, Python, C / C ++ и многих других.
На момент обновления этой статьи последний выпуск PostgreSQL — 13, который предназначен для использования для выполнения рабочих нагрузок в производственных средах. Вы можете найти информацию обо всех функциях и изменениях, обнаруженных в PostgreSQL 13, в примечаниях к выпуску .
Шаг 1. Обновите систему Ubuntu
Мы всегда работаем над последним выпуском ОС, чтобы убедиться в отсутствии старых проблем с зависимостями. Войдите на свой сервер Ubuntu и выполните следующие команды, чтобы обновить все установленные пакеты.
sudo apt update
sudo apt -y upgrade
После обновления системы я рекомендую вам выполнить перезагрузку, чтобы запустить новое ядро, если оно было обновлено.
sudo reboot
Шаг 2. Добавьте репозиторий PostgreSQL 13 в Ubuntu 20.04 | 18.04
Теперь, когда мы обновили и перезагрузили нашу систему, давайте добавим репозиторий APT, необходимый для извлечения пакетов из репозитория PostgreSQL.
sudo apt -y install vim bash-completion wget
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
После импорта ключа GPG добавьте содержимое репозитория в вашу систему Ubuntu 20.04 | 18.04:
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee /etc/apt/sources.list.d/pgdg.list
Добавленный репозиторий содержит множество различных пакетов, включая сторонние надстройки. Они включают:
- postgresql-client
- postgresql
- libpq-dev
- postgresql-server-dev
- pgadmin packages
Шаг 3. Установите PostgreSQL 13 в Ubuntu 20.04 / 18.04 Linux
После добавления репозитория мы можем установить пакеты PostgreSQL 13 на наш Linux-сервер Ubuntu 20.04 | 18.04. Но сначала обновите индекс пакета, чтобы версия была доступна на уровне ОС.
sudo apt update
Выполните приведенные ниже команды, чтобы установить PostgreSQL 13 в Ubuntu 20.04 | 18.04 Система Linux.
sudo apt install postgresql-13 postgresql-client-13
Служба PostgreSQL запускается и запускается после каждой перезагрузки системы.
$ systemctl status postgresql.service ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Sun 2020-10-07 10:23:46 UTC; 6min ago Main PID: 8159 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 2362) CGroup: /system.slice/postgresql.service $ systemctl status postgresql@13-main.service $ systemctl is-enabled postgresql enabled
Шаг 4: Проверьте соединение с PostgreSQL
Во время установки автоматически создается пользователь postgres. Этот пользователь имеет полный доступ суперадминистратора ко всему вашему экземпляру PostgreSQL. Прежде чем переключиться на эту учетную запись, ваш системный пользователь, вошедший в систему, должен иметь права sudo.
sudo su - postgres
Давайте сбросим этот пароль пользователя на надежный пароль, который мы можем запомнить.
psql -c "alter user postgres with password 'StrongAdminP@ssw0rd'"
Запустите командную строку PostgreSQL с помощью команды:
$ psql
Получите подробную информацию о подключении, как показано ниже.
$ psql psql (13.0 (Ubuntu 13.0-1.pgdg18.04+1)) Type "help" for help. postgres=# \conninfo You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".
Давайте создадим тестовую базу данных и пользователя, чтобы посмотреть, работает ли она.
postgres=# CREATE DATABASE mytestdb; CREATE DATABASE postgres=# CREATE USER mytestuser WITH ENCRYPTED PASSWORD 'MyStr0ngP@SS'; CREATE ROLE postgres=# GRANT ALL PRIVILEGES ON DATABASE mytestdb to mytestuser; GRANT
Перечислить созданные базы данных:
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+---------+-------------------------
mytestdb | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres +
| | | | | postgres=CTc/postgres +
| | | | | mytestuser=CTc/postgres
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
Подключиться к базе данных:
postgres-# \c mytestdb You are now connected to database "mytestdb" as user "postgres".
Другие установленные утилиты PostgreSQL, такие как createuser и createdb, можно использовать для создания базы данных и пользователей.
postgres@ubuntu:~$ createuser myuser --password Password:
postgres@ubuntu:~$ createdb mydb -O myuser
postgres@ubuntu:~$ psql -l
Мы можем создать базу данных и подключиться к ней на сервере PostgreSQL.
Шаг 5. Настройте удаленное подключение (необязательно)
Установка PostgreSQL 13 на Ubuntu принимает соединения только от localhost. В идеальных производственных средах у вас будет центральный сервер базы данных и подключенные к нему удаленные клиенты — но, конечно, в частной сети (LAN).
Чтобы включить удаленные подключения, отредактируйте файл конфигурации PostgreSQL:
sudo nano /etc/postgresql/13/main/postgresql.conf
Раскомментируйте строку 59 и измените адрес прослушивания, чтобы принимать соединения в ваших сетях.
# Listen on all interfaces
listen_addresses = '*'
# Listen on specified private IP address
listen_addresses = '192.168.10.11'
Также настройте PostgreSQL на прием удаленных подключений от разрешенных хостов.
$ sudo nano /etc/postgresql/13/main/pg_hba.conf
# Accept from anywhere
host all all 0.0.0.0/0 md5
# Accept from trusted subnet
host all all 10.10.10.0/24 md5
После изменения перезапустите службу postgresql.
sudo systemctl restart postgresql
Подтвердите адреса прослушивания.
# netstat -tunelp | grep 5432
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 111 112837 11143/postgres
tcp6 0 0 :::5432 :::* LISTEN 111 112838 11143/postgres