Установка PostgreSQL: подробное пошаговое руководство
Установите PostgreSQL на Linux, macOS или Windows, затем создайте пользователя, проверьте доступ и настройте безопасные сетевые подключения.
Установка PostgreSQL: Полное пошаговое руководство
Установка PostgreSQL обычно проста, но детали различаются в зависимости от Linux, macOS и Windows. Цель — не просто запустить службу; вам также нужен работоспособный пользователь базы данных, чистый способ подключения и безопасные настройки по умолчанию для сетевого доступа.
Используйте это руководство для установки PostgreSQL для разработки или небольшой серверной настройки, затем адаптируйте пути и номера версий под текущие пакеты вашей операционной системы.
Предварительные требования
Перед началом процесса установки убедитесь, что ваша система соответствует этим основным требованиям:
- Права администратора: Вам понадобятся привилегии
sudoв Linux/macOS или права администратора в Windows для установки программного обеспечения и настройки системных служб. - Подключение к интернету: Требуется для загрузки установочных пакетов.
- Достаточно места на диске: Хотя начальная установка относительно невелика, ваша база данных будет расти. Убедитесь, что у вас достаточно места на диске для ваших данных.
Установка на Linux
Дистрибутивы Linux обычно предлагают PostgreSQL через свои стандартные репозитории пакетов, что делает установку простой.
Debian/Ubuntu
Для систем на основе Debian, таких как Ubuntu, вы можете установить PostgreSQL с помощью apt.
Обновите списки пакетов: Всегда начинайте с обновления списков вашего менеджера пакетов, чтобы получить последние доступные пакеты.
sudo apt updateУстановите PostgreSQL: Установите пакет
postgresql, который часто включает сервер, клиентские утилиты и документацию. Вы можете указать версию (например,postgresql-16) или установить версию по умолчанию, просто используяpostgresql.sudo apt install postgresql postgresql-contribПакет
postgresql-contribпредоставляет дополнительные утилиты и функциональные возможности.Примечание: В Debian/Ubuntu служба PostgreSQL обычно запускается автоматически после установки, и создается пользователь
postgresпо умолчанию (как системный, так и пользователь базы данных).Проверьте установку: Проверьте статус службы.
sudo systemctl status postgresqlВы должны увидеть вывод, указывающий на
active (exited)илиactive (running).exitedявляется нормальным для основного модуля службы, если он управляет несколькими кластерами, которые работают как отдельные процессы.
RHEL/CentOS/Fedora
Для систем на основе Red Hat используйте dnf (или yum для старых версий CentOS/RHEL).
Установите репозиторий PostgreSQL: PostgreSQL предоставляет собственный репозиторий для более новых версий, чем те, что могут быть доступны в стандартных репозиториях ОС. Рекомендуется использовать его для последних стабильных релизов.
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm # Для EL-9 используйте: sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm # При необходимости замените EL-8-x86_64 на вашу конкретную версию ОС и архитектуру.Отключите модуль PostgreSQL по умолчанию (если применимо): Некоторые версии RHEL/CentOS имеют модуль PostgreSQL по умолчанию. Отключите его, чтобы избежать конфликтов с репозиторием PGDG.
sudo dnf -qy module disable postgresqlУстановите PostgreSQL: Установите сервер и пакеты contrib. Замените
16на желаемую версию.sudo dnf install -y postgresql16-server postgresql16-contribИнициализируйте кластер базы данных: В отличие от Debian/Ubuntu, в системах на основе RHEL часто требуется вручную инициализировать кластер базы данных.
sudo /usr/pgsql-16/bin/postgresql-16-setup initdbОткорректируйте путь
/usr/pgsql-16/binиpostgresql-16-setupв соответствии с вашей установленной версией.Запустите и включите службу PostgreSQL: Запустите службу и настройте ее на запуск при загрузке.
sudo systemctl enable postgresql-16 sudo systemctl start postgresql-16Проверьте установку: Проверьте статус службы.
sudo systemctl status postgresql-16
Установка на macOS
В macOS Homebrew является рекомендуемым и самым простым способом установки PostgreSQL.
Установите Homebrew (если еще не сделали этого):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Следуйте инструкциям на экране, включая добавление Homebrew в ваш
PATH.Установите PostgreSQL: Используйте Homebrew для установки PostgreSQL. Вы можете указать версию (например,
postgresql@16) или установить последнюю стабильную версию по умолчанию.brew install postgresqlЗапустите службу PostgreSQL: Homebrew устанавливает PostgreSQL как фоновую службу.
brew services start postgresqlЧтобы остановить:
brew services stop postgresqlЧтобы перезапустить:brew services restart postgresqlПроверьте установку: Проверьте, доступен ли
psqlи подключен ли он.psql -VЧтобы подключиться к базе данных по умолчанию:
psql postgresСовет: Для визуального приложения рассмотрите Postgres.app, который предоставляет простой способ запуска и управления PostgreSQL без командной строки.
Установка на Windows
В Windows графический установщик EnterpriseDB (EDB) является наиболее распространенным методом для локальной настройки PostgreSQL.
Загрузите установщик: Посетите официальную страницу загрузки PostgreSQL (www.postgresql.org/download/windows/) и загрузите последний установщик EDB для вашей версии Windows.
Запустите установщик: Выполните загруженный
.exeфайл. Мастер установки проведет вас через процесс.- Каталог установки: Выберите, куда будет установлен PostgreSQL (например,
C:\Program Files\PostgreSQL\16). - Каталог данных: Выберите место для файлов вашей базы данных (например,
C:\Program Files\PostgreSQL\16\data). Это критически важно и в идеале должно быть на быстром, надежном диске. - Пароль для суперпользователя
postgres: Установите надежный пароль для суперпользователя базы данныхpostgresпо умолчанию. Запомните этот пароль, так как он понадобится для первоначального подключения. - Порт: Порт PostgreSQL по умолчанию —
5432. Обычно безопасно оставлять его по умолчанию, если нет конфликтов. - Локаль: Выберите локаль по умолчанию для вашего кластера базы данных.
- Каталог установки: Выберите, куда будет установлен PostgreSQL (например,
Stack Builder: После установки установщик EDB может запустить Stack Builder. Этот инструмент помогает установить дополнительные драйверы, инструменты и расширения (например,
pgAdmin 4). Настоятельно рекомендуется установитьpgAdmin 4для графического интерфейса управления вашими базами данных.Проверьте установку: После установки вы можете открыть
pgAdmin 4(обычно находится в меню «Пуск» в разделе «PostgreSQL 16» или аналогичном) и попытаться подключиться к вашему локальному серверу, используя суперпользователяpostgresи установленный вами пароль.
Первоначальная настройка и действия после установки
После установки PostgreSQL эти шаги необходимы для функциональной и безопасной настройки.
1. Установите переменную окружения PATH (необязательно, в основном для Windows/macOS, если psql не найден)
Чтобы легко запускать psql и другие двоичные файлы PostgreSQL из любого терминала, добавьте каталог bin PostgreSQL в PATH вашей системы.
- Linux: Часто обрабатывается менеджером пакетов, но если нет, добавьте
/usr/pgsql-X.Y/bin(RHEL) или/usr/lib/postgresql/X.Y/bin(Debian/Ubuntu) в вашPATH. - macOS (Homebrew):
brewобрабатывает это автоматически. - Windows: Во время установки EDB есть опция добавления в
PATH. Если она не выбрана, вы можете добавитьC:\Program Files\PostgreSQL\16\bin(откорректируйте версию) вручную черезСвойства системы > Переменные среды.
2. Доступ к терминалу psql
psql — это интерфейс командной строки для PostgreSQL, необходимый для администрирования и выполнения запросов.
Linux/macOS: Переключитесь на системного пользователя
postgres(созданного во время установки).sudo -i -u postgres psqlТеперь вы подключены к базе данных
postgresкак пользовательpostgres. Введите\qдля выхода.Windows: Откройте
SQL Shell (psql)из меню «Пуск» (PostgreSQL 16 > SQL Shell (psql)). Он запросит детали сервера и пароль пользователяpostgres.
3. Создайте нового пользователя базы данных и базу данных
Рекомендуется не использовать суперпользователя postgres для повседневного использования приложения. Создайте нового выделенного пользователя и базу данных.
Войдите как суперпользователь
postgres(как показано выше).Создайте нового пользователя (роль):
CREATE USER myuser WITH PASSWORD 'strong_password';Совет: Замените
myuserиstrong_passwordна безопасные учетные данные.Создайте новую базу данных и назначьте владельца:
CREATE DATABASE mydatabase OWNER myuser;Предоставьте привилегии (если необходимо, или владелец
CREATE DATABASEобрабатывает это для базовых операций):GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;Выйдите из
psql:\q
4. Настройте pg_hba.conf для сетевого доступа
Файл pg_hba.conf управляет аутентификацией клиентов. По умолчанию PostgreSQL может разрешать подключения только с localhost (127.0.0.1).
Расположение: Этот файл обычно находится в каталоге данных PostgreSQL (например,
/var/lib/postgresql/16/main/pg_hba.confв Debian/Ubuntu,/var/lib/pgsql/16/data/pg_hba.confв RHEL илиC:\Program Files\PostgreSQL\16\data\pg_hba.confв Windows).Отредактируйте файл (как root/администратор):
sudo nano /etc/postgresql/16/main/pg_hba.conf(Откорректируйте путь для вашей ОС и версии).
Чтобы разрешить
myuserподключаться из доверенной подсети с использованием аутентификации по паролю, добавьте строку, подобную этой:# TYPE DATABASE USER ADDRESS METHOD host mydatabase myuser 192.168.1.0/24 scram-sha-256scram-sha-256— предпочтительный метод пароля для современных развертываний PostgreSQL. Избегайте0.0.0.0/0, если сервер также не защищен строгими правилами брандмауэра и вам действительно нужен широкий доступ.Перезагрузите PostgreSQL: После изменения
pg_hba.confвы должны перезагрузить службу PostgreSQL, чтобы изменения вступили в силу.sudo systemctl reload postgresql # Linux # Для Homebrew на macOS: # brew services restart postgresql # Для Windows перезапустите службу PostgreSQL через Services.msc
5. Настройте postgresql.conf (прослушивание сети)
По умолчанию PostgreSQL часто прослушивает только localhost. Чтобы принимать подключения с других машин, вам нужно изменить postgresql.conf.
Расположение: Этот файл обычно находится в том же каталоге, что и
pg_hba.conf.Отредактируйте файл:
sudo nano /etc/postgresql/16/main/postgresql.confНайдите параметр
listen_addressesи измените его, только если удаленным клиентам нужно подключаться:#listen_addresses = 'localhost' # какие IP-адреса прослушивать; listen_addresses = 'localhost,192.168.1.10'Используйте реальный частный IP-адрес сервера вместо
192.168.1.10.listen_addresses = '*'также работает, но его следует сочетать с ограничительными правиламиpg_hba.confи брандмауэра.Перезапустите PostgreSQL: Изменения в
postgresql.confтребуют полного перезапуска службы.sudo systemctl restart postgresql # Linux # brew services restart postgresql # macOS # Для Windows перезапустите службу PostgreSQL через Services.msc
Проверка вашей установки
После всех настроек выполните окончательную проверку:
Проверьте статус службы PostgreSQL (
systemctl status postgresqlилиbrew services listили службы Windows).Подключитесь как ваш новый пользователь к вашей новой базе данных:
psql -h localhost -U myuser -d mydatabaseБудет запрошен пароль
myuser. В случае успеха вы увидите приглашениеmydatabase=>. Введите\qдля выхода.При подключении с другой машины замените
localhostна IP-адрес сервера.
Советы и лучшие практики
- Надежные пароли: Всегда используйте надежные уникальные пароли для всех пользователей базы данных, особенно для суперпользователя
postgres. - Выделенный каталог данных: Для производства рассмотрите возможность размещения каталога данных на выделенном томе или RAID-массиве для производительности и надежности.
- Регулярное резервное копирование: Внедрите надежную стратегию резервного копирования с первого дня. Утилиты PostgreSQL
pg_dumpиpg_basebackup— отличные инструменты для этого. - Оставайтесь в курсе: Поддерживайте вашу установку PostgreSQL в актуальном состоянии, чтобы получать исправления ошибок, обновления безопасности и новые функции. Используйте менеджер пакетов вашей системы или следуйте процессу обновления установщика EDB.
- Настройка брандмауэра: Если вы разрешаете удаленные подключения, убедитесь, что брандмауэр вашей системы (например,
ufw,firewalld, брандмауэр Windows) настроен на разрешение входящего трафика на порт5432(или выбранный вами порт).
Вывод
После установки PostgreSQL проверьте службу, подключитесь с помощью psql, создайте роль приложения и ограничьте удаленный доступ. Для производства вашим следующим шагом должны быть резервное копирование и мониторинг, прежде чем база данных начнет хранить важные данные.