Как установить PostgreSQL и pgAdmin на FreeBSD 11
На этой странице
- Установка PostgreSQL
- Включить удаленные подключения и аутентификацию по паролю
- Изменение пароля и создание пользователя
- Установка pgAdmin
- Заключение
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.