В этом практическом занятии мы установим и выполним начальную настройку PostgreSQL на виртуальной машине LabEx. Цель состоит в том, чтобы запустить и настроить PostgreSQL и проверить его базовую функциональность.
Мы начнем с обновления списков пакетов и установки сервера PostgreSQL вместе с пакетом postgresql-contrib. После установки мы проверим, что служба PostgreSQL запущена и принимает подключения с помощью команды pg_isready. Наконец, мы рассмотрим базы данных по умолчанию и проверим статус сервера и базовую конфигурацию.
Skills Graph
%%%%{init: {'theme':'neutral'}}%%%%
flowchart RL
postgresql(("PostgreSQL")) -.-> postgresql/PostgreSQLGroup(["PostgreSQL"])
postgresql/PostgreSQLGroup -.-> postgresql/db_setup("Create New Database")
postgresql/PostgreSQLGroup -.-> postgresql/db_access("Connect To Database")
postgresql/PostgreSQLGroup -.-> postgresql/db_status("Check Database Status")
postgresql/PostgreSQLGroup -.-> postgresql/sys_version("Get Server Version")
subgraph Lab Skills
postgresql/db_setup -.-> lab-550900{{"Установка и первоначальная настройка PostgreSQL"}}
postgresql/db_access -.-> lab-550900{{"Установка и первоначальная настройка PostgreSQL"}}
postgresql/db_status -.-> lab-550900{{"Установка и первоначальная настройка PostgreSQL"}}
postgresql/sys_version -.-> lab-550900{{"Установка и первоначальная настройка PostgreSQL"}}
end
Установка PostgreSQL и проверка установки
На этом этапе мы установим PostgreSQL на виртуальную машину LabEx и проверим, что установка прошла успешно. PostgreSQL - это мощная, открытый исходный код реляционная система управления базами данных (RDBMS).
Сначала обновим списки пакетов для обновлений и новых установок. Откройте терминал на виртуальной машине LabEx. Вы можете найти значок терминала на рабочем столе.
Выполните следующую команду:
sudo apt update
Эта команда обновляет список доступных пакетов и их версий, но не устанавливает или не обновляет никакие пакеты. Вы должны увидеть вывод, указывающий на то, что списки пакетов обновляются.
Далее установите сервер PostgreSQL и пакет postgresql-contrib. Пакет postgresql-contrib предоставляет дополнительные утилиты и функциональность, которые часто бывают полезными.
Выполните следующую команду:
sudo apt install postgresql postgresql-contrib -y
Флаг -y автоматически отвечает "да" на любые запросы во время процесса установки. Эта команда загрузит и установит PostgreSQL и связанные с ним пакеты. Вы увидите много вывода, когда пакеты будут загружаться и устанавливаться.
После завершения установки необходимо проверить, что PostgreSQL запущен. PostgreSQL должен автоматически запуститься после установки.
Чтобы проверить статус службы PostgreSQL, выполните следующую команду:
sudo service postgresql status
Мы также можем использовать команду pg_isready для проверки, запущен ли сервер PostgreSQL и принимает ли он подключения.
Выполните следующую команду:
pg_isready
Если PostgreSQL запущен, вы должны увидеть следующий вывод:
/var/run/postgresql:5432 - accepting connections
Если PostgreSQL не запущен, вы можете увидеть сообщение об ошибке, например:
/var/run/postgresql:5432 - no response
Если вы столкнулись с ошибкой "no response", попробуйте перезапустить службу PostgreSQL. Вы можете попробовать следующую команду:
sudo service postgresql restart
Затем запустите pg_isready снова, чтобы проверить статус.
Если pg_isready показывает "accepting connections", это подтверждает, что PostgreSQL успешно установлен и запущен.
Доступ к оболочке PostgreSQL (psql)
На этом этапе мы получим доступ к оболочке PostgreSQL, psql, которая представляет собой инструмент командной строки для взаимодействия с базами данных PostgreSQL. psql позволяет выполнять SQL-запросы, управлять базами данных и выполнять другие административные задачи.
По умолчанию PostgreSQL создает пользователя Unix с именем postgres, который соответствует суперпользователю PostgreSQL. Чтобы получить доступ к оболочке psql, вы можете либо переключиться на пользователя postgres, либо использовать sudo для выполнения команд от имени пользователя postgres.
Сначала переключимся на пользователя postgres. Выполните следующую команду:
sudo -i -u postgres
Эта команда переключает текущего пользователя на postgres. Вы заметите, что приглашение командной строки изменится, чтобы отразить нового пользователя.
Теперь, когда вы вошли в систему как пользователь postgres, вы можете получить доступ к оболочке psql. Выполните следующую команду:
psql
Эта команда откроет оболочку psql. Вы должны увидеть приглашение, похожее на следующее:
postgres=#
Это означает, что вы подключены к серверу PostgreSQL и теперь можете выполнять SQL-команды.
Чтобы выйти из оболочки psql, введите \q и нажмите Enter:
postgres=## \q
Это вернет вас в оболочку пользователя postgres.
Чтобы выйти из оболочки пользователя postgres и вернуться к своему исходному пользователю (labex), введите exit и нажмите Enter:
exit
В качестве альтернативы вы можете получить доступ к оболочке psql напрямую от имени пользователя labex с использованием sudo. Это избавляет от необходимости переключаться между пользователями.
Выполните следующую команду:
sudo -u postgres psql
Эта команда выполняет команду psql от имени пользователя postgres. Вы будете напрямую подключены к оболочке psql.
Снова, чтобы выйти из оболочки psql, введите \q и нажмите Enter:
postgres=## \q
Это вернет вас в оболочку пользователя labex.
В целом, вы узнали два способа получить доступ к оболочке psql: переключение на пользователя postgres и использование sudo. Оба метода дают одинаковый результат, но использование sudo может быть более удобным в некоторых случаях.
Исследование баз данных по умолчанию
На этом этапе мы рассмотрим базы данных по умолчанию, которые создаются при установке PostgreSQL. Эти базы данных обеспечивают важную функциональность и информацию о сервере PostgreSQL.
Сначала получите доступ к оболочке psql от имени пользователя postgres. Вы можете использовать следующую команду:
sudo -u postgres psql
После того, как вы находитесь в оболочке psql, вы можете вывести список доступных баз данных с помощью команды \l. Выполните следующую команду:
postgres=## \l
Эта команда отобразит список баз данных, а также информацию о их владельцах, кодировках и правах доступа. Вы должны увидеть как минимум три базы данных:
postgres: Это база данных по умолчанию, к которой вы подключаетесь при первом доступе к оболочке psql. Часто используется для административных задач.
template0: Эта база данных используется в качестве шаблона для создания новых баз данных. Не следует изменять эту базу данных.
template1: Это еще одна база данных-шаблон, которая используется для создания новых баз данных. Это стандартный шаблон и его можно настроить.
Для подключения к конкретной базе данных вы можете использовать команду \c, за которой следует имя базы данных. Например, чтобы подключиться к базе данных postgres, выполните следующую команду:
postgres=## \c postgres
Вы должны увидеть сообщение, указывающее, что вы теперь подключены к базе данных postgres:
You are now connected to database "postgres" as user "postgres".
Теперь, когда вы подключены к базе данных postgres, вы можете исследовать ее содержимое. Например, вы можете вывести список таблиц в базе данных с помощью команды \dt:
postgres=## \dt
Эта команда отобразит список таблиц в текущей базе данных. Поскольку база данных postgres в основном используется для административных задач, она может не содержать никаких пользовательских таблиц.
Вы также можете просмотреть информацию о текущем подключении к базе данных с помощью команды \conninfo:
postgres=## \conninfo
Эта команда отобразит информацию, такую как имя базы данных, пользователь, хост и порт.
Для отключения от текущей базы данных и возврата к подключению по умолчанию вы можете использовать команду \c без указания имени базы данных:
postgres=## \c
Это подключит вас обратно к базе данных по умолчанию, которая обычно является базой данных postgres.
Наконец, выйдите из оболочки psql, введя \q и нажав Enter:
postgres=## \q
Это вернет вас в оболочку пользователя labex.
На этом этапе вы узнали, как вывести список доступных баз данных, подключиться к конкретной базе данных и исследовать ее содержимое с помощью оболочки psql.
Проверка статуса сервера и базовых настроек
На этом этапе мы проверим статус сервера PostgreSQL и рассмотрим некоторые базовые настройки конфигурации.
Как упоминалось ранее, так как виртуальная машина LabEx запускается в контейнере Docker, команды systemctl могут не работать как ожидается. Мы в основном будем использовать pg_isready и psql для проверки статуса сервера.
Сначала давайте еще раз проверим, что сервер PostgreSQL запущен. Выполните следующую команду:
pg_isready
Если PostgreSQL запущен, вы должны увидеть следующий вывод:
/var/run/postgresql:5432 - accepting connections
Далее, давайте проверим некоторые базовые настройки конфигурации с помощью оболочки psql. Получите доступ к оболочке psql от имени пользователя postgres:
sudo -u postgres psql
После того, как вы находитесь в оболочке psql, вы можете проверить версию PostgreSQL с помощью следующего SQL-запроса:
SELECT version();
Выполните этот запрос в оболочке psql. Вы должны увидеть вывод, похожий на следующий:
version
----------------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 14.17 (Ubuntu 14.17-0ubuntu0.22.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit
(1 row)
Это показывает версию PostgreSQL, установленную на сервере.
Вы также можете проверить текущего пользователя базы данных:
SELECT user;
Вывод будет следующим:
user
----------
postgres
(1 row)
Для проверки имени базы данных, к которой вы в данный момент подключены, используйте:
Для просмотра настроек конфигурации вы можете использовать команду SHOW. Например, чтобы проверить настройку listen_addresses, которая указывает IP-адреса, на которых сервер принимает подключения, выполните следующую команду:
SHOW listen_addresses;
Вывод, скорее всего, будет следующим:
listen_addresses
--------------------
*
(1 row)
Знак * означает, что сервер принимает подключения на всех доступных IP-адресах.
Еще одна полезная настройка для проверки - port, которая указывает номер порта, на котором сервер принимает подключения:
SHOW port;
Вывод будет следующим:
port
------
5432
(1 row)
Это означает, что сервер принимает подключения на порту 5432, который является портом по умолчанию для PostgreSQL.
Наконец, выйдите из оболочки psql, введя \q и нажав Enter:
postgres=## \q
Это вернет вас в оболочку пользователя labex.
На этом этапе вы узнали, как проверить статус сервера PostgreSQL и рассмотреть некоторые базовые настройки конфигурации с помощью pg_isready и оболочки psql.
Резюме
В этом практическом занятии мы установили реляционную систему управления базами данных (RDBMS) PostgreSQL на виртуальной машине LabEx с помощью команд apt update и apt install postgresql postgresql-contrib -y. Флаг -y использовался для автоматического подтверждения запросов во время установки.
После установки мы проверили, что служба PostgreSQL запущена и принимает подключения. Поскольку виртуальная машина LabEx запускается в контейнере Docker, мы использовали команду pg_isready вместо systemctl status postgresql для проверки статуса сервера. Ожидаемый вывод команды pg_isready, когда сервер запущен, выглядит так: /var/run/postgresql:5432 - accepting connections.