Поиск по сайту:

Как установить PostgreSQL и pgAdmin на FreeBSD 11


На этой странице

  1. Установка PostgreSQL
  2. Включить удаленные подключения и аутентификацию по паролю
  3. Изменение пароля и создание пользователя
  4. Установка pgAdmin
  5. Заключение

PostgreSQL или сокращенно Postgres — это система управления объектно-реляционными базами данных (ORDBMS) с открытым исходным кодом. Он находится в активной разработке с 1996 года и превратился в одну из лучших ORDMS. Он поддерживает все функции СУБД, а также поддерживает объектно-ориентированные модели баз данных. Объекты, классы и наследование напрямую поддерживаются в схемах баз данных и в языке запросов. PostgreSQL можно использовать для размещения базы данных для различных приложений, от небольших веб-сайтов до крупных облачных приложений или хранилищ данных.

В этом руководстве мы узнаем, как установить PostgreSQL и pgAdmin на сервер FreeBSD 11.

Предпосылка

  • Минимальный сервер FreeBSD 11. Рекомендуется 8 ГБ оперативной памяти.
  • Пользователь Sudo с привилегиями root.

Установка PostgreSQL

Сначала обновите информацию о репозитории сервера.

sudo pkg update

pkg — это встроенный менеджер пакетов для FreeBSD. Затем загрузите и установите пакеты сервера и клиента PostgreSQL.

sudo pkg install postgresql96-server postgresql96-client

Нажмите y, чтобы продолжить установку. Теперь pkg найдет и установит указанные пакеты вместе с необходимыми зависимостями.

После завершения установки включите автоматический запуск PostgreSQL во время загрузки.

sudo sysrc postgresql_enable=yes

В качестве альтернативы, чтобы запустить PostgreSQL во время загрузки, вы также можете добавить postgresql_enable=\YES\ в конец /etc/rc.conf, используя любой из ваших любимых текстовых редакторов.

Теперь инициализируйте базу данных с помощью следующей команды.

sudo service postgresql initdb

initdb создает новый кластер базы данных postgresql, который представляет собой набор баз данных, управляемых одним экземпляром сервера.

Теперь вы можете запустить сервер базы данных PostgreSQL, используя следующую команду.

sudo service postgresql start

Сервер базы данных PostgreSQL установлен.

Включить удаленные подключения и аутентификацию по паролю

Если к серверу базы данных требуется удаленный доступ, вам потребуется внести несколько изменений в конфигурацию PostgreSQL. В этом туториале мы будем использовать редактор nano. Если у вас не установлен nano, вы можете запустить:

sudo pkg install nano

Откройте файл конфигурации с помощью редактора nano.

sudo nano /var/db/postgres/data96/postgresql.conf

Прокрутите вниз, чтобы найти строки, показанные ниже. Раскомментируйте listen_addresses и измените его значение с localhost на *. Вы также можете изменить порт по умолчанию с 5432 на любое другое значение.

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'         # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
#port = 5432                            # (change requires restart)
max_connections = 100                   # (change requires restart)
#superuser_reserved_connections = 3     # (change requires restart)
#unix_socket_directories = '/tmp'       # comma-separated list of directories

По умолчанию PostgreSQL позволяет всем подключаться к оболочке psql без аутентификации пользователя, который уже вошел в систему как пользователь PostgreSQL. Когда база данных станет общедоступной, вам нужно будет изменить метод аутентификации на более безопасный. Вы можете использовать метод аутентификации md5, который использует зашифрованный пароль для аутентификации. Кроме того, вы также можете указать IP-адреса, разрешенные для аутентификации.

Откройте файл pg_hba.conf с помощью вашего любимого текстового редактора.

sudo nano /var/db/postgres/data96/pg_hba.conf

Измените метод аутентификации с доверия на md5 для подключения типа хоста. Далее добавьте адрес клиентской машины, с которой будет осуществляться доступ к базе данных. Чтобы разрешить всем клиентам использовать аутентификацию на основе md5, используйте в качестве адреса 0.0.0.0/0.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             0.0.0.0/0               md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Чтобы вышеуказанные изменения вступили в силу, вам необходимо перезапустить сервер PostgreSQL.

sudo service postgresql restart

Изменение пароля и создание пользователя

По умолчанию PostgreSQL создает пользователя postgres и группу postgres для обслуживания экземпляра PostgreSQL. Чтобы установить пароль для пользователя postgres, выполните следующую команду.

sudo passwd postgres

После смены пароля войдите в систему как пользователь postgres.

su - postgres

Теперь вы можете войти в оболочку PostgreSQL, используя следующую команду.

psql

Вы увидите, что оболочка изменилась на оболочку PostgreSQL.

psql (9.6.3)
Type "help" for help.

postgres=#

Теперь вы можете запускать SQL-запросы из этой оболочки. Чтобы выйти из оболочки PostgreSQL, введите \q или \quit.

Вы можете создать новую роль в интерактивном режиме, набрав:

createuser --interactive

Скрипт попросит вас ввести имя пользователя и указать, является ли пользователь суперпользователем.

$ createuser --interactive
Enter name of role to add: new_user
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) y

В качестве альтернативы вы можете запустить:

createuser -sdrP new_user

Смысл параметров следующий.

  • s: этот пользователь будет суперпользователем.
  • d: Этот пользователь может создавать новые базы данных.
  • r: этот пользователь может создавать новые роли.
  • P: Назначьте пароль для этой роли.

Приведенная выше команда также запросит пароль для new_user.

Чтобы создать новую базу данных, вы можете запустить следующую команду.

createdb new_db

Теперь переключитесь на оболочку PostgreSQL с помощью команды psql. Если у пользователя нет пароля, укажите пароль только что созданной учетной записи:

ALTER USER new_user WITH ENCRYPTED PASSWORD 'password';

Теперь предоставьте все привилегии базы данных только что созданному пользователю, выполнив запрос:

GRANT ALL PRIVILEGES ON DATABASE new_db TO new_user;

Выйдите из редактора, запустив \q.

Установка pgAdmin

pgAdmin — самое популярное приложение с открытым исходным кодом для управления сервером базы данных PostgreSQL. pgAdmin предоставляет многофункциональный графический пользовательский интерфейс для простого управления базами данных. Он написан на Python и Javascript/jQuery. Он доступен в нескольких средах, таких как Linux, Windows, Unix, а также доступен в режиме рабочего стола и сервера.

В этом руководстве мы установим pgAdmin в режиме сервера на тот же сервер, на котором мы установили PostgreSQl.

pip — это менеджер пакетов для пакетов Python. Он используется для установки и управления пакетами и зависимостями Python. Если вы вошли в систему как пользователь postgres, вам нужно будет переключиться на обычного пользователя с привилегиями sudo.

su - sudo_user

Чтобы установить pip в вашей системе, запустите:

sudo python -m ensurepip

Рекомендуется использовать virtualenv для создания изолированной среды Python. Virtualenv создает среду с собственной установкой Python, которая не поддерживает библиотеки с глобальной или другой виртуальной средой. Выполните следующую команду для установки Virtualenv.

sudo pkg install py27-virtualenv

Теперь создайте виртуальную среду для pgAdmin, запустив:

virtualenv pgadmin4

Активируйте виртуальную среду, набрав:

. pgadmin4/bin/activate

Вы увидите, что оболочка изменилась на (pgadmin4) $.

Установите несколько зависимостей Python, набрав:

sudo pip install cryptography pyopenssl ndg-httpsclient pyasn1

cryptography package предоставляет криптографические инструменты, pyopenssl — это модуль-оболочка Python для библиотеки OpenSSL. ndg-httpsclient использовал pyopenssl для обеспечения расширенной поддержки HTTPS, а pyasn1 — это реализация ASN.1 на Python. Эти пакеты необходимы для работы pgAdmin.

pgAdmin4 также требует пакета SQLite. SQLite также является системой управления базами данных с поддержкой SQL. Вместо того, чтобы требовать отдельный сервер, SQLite хранит данные в плоских файлах на диске. Установите пакет Python SQLite3, набрав:

sudo pkg install py27-sqlite3

Загрузите пакет колеса Python для pgAdmin, набрав:

wget --no-check-certificate https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v1.5/pip/pgadmin4-1.5-py2.py3-none-any.whl

Вы всегда можете проверить ссылку на последнюю версию приложения на странице загрузки pgAdmin.

Теперь установите пакет, запустив:

pip install pgadmin4-1.5-py2.py3-none-any.whl

Теперь вы можете запустить приложение, используя:

python ./pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py

При первом запуске приведенная выше команда запросит ваш адрес электронной почты и пароль для создания начального пользователя pgAdmin.

(pgadmin4) $ python ./pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py
NOTE: Configuring authentication for SERVER mode.

Enter the email address and password to use for the initial pgAdmin user account:

Email address: your_email
Password: your_new_password
Retype password:
Starting pgAdmin 4. Please navigate to http://localhost:5050 in your browser.

Приведенная выше команда запустит сервер на порту 5050 и будет слушать только локальный хост. Чтобы получить доступ к серверу из-за пределов сети, вам потребуется внести некоторые изменения в конфигурацию. Скопируйте файл конфигурации pgAdmin.

sudo cp ./pgadmin4/lib/python2.7/site-packages/pgadmin4/config.py ./pgadmin4/lib/python2.7/site-packages/pgadmin4/config_local.py

Теперь отредактируйте локальную копию файла конфигурации, используя ваш любимый редактор.

sudo nano ./pgadmin4/lib/python2.7/site-packages/pgadmin4/config_local.py

Измените значение сервера по умолчанию с localhost на 0.0.0.0, если хотите, вы также можете изменить порт, который прослушивает приложение.

DEFAULT_SERVER = '0.0.0.0'

# The default port on which the app server will listen if not set in the
# environment by the runtime
DEFAULT_SERVER_PORT = 5050

Запустите сервер снова, набрав:

python ./pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py

Теперь вы сможете получить доступ к интерфейсу pgAdmin по адресу http://your_server_IP:5050.

Заключение

Теперь на вашем сервере должны быть установлены PostgreSQL и pgAdmin. Теперь вы можете использовать pgAdmin для управления базами данных на сервере PostgreSQL.