Необходима е първоначална конфигурация след инсталирането на PostgreSQL на CentOS и преди стартиране.
Дата на публикуване:17 декември 2020 г.
INFOMARTION > Необходима е първоначална конфигурация след инсталирането на PostgreSQL на CentOS и преди стартиране.
Преглед.
Това е процедурата за първоначална конфигурация, необходима за инсталиране и стартиране на PostgreSQL в CentOS. Информацията се основава на предположението, че се използва CentOS7. Включен е и разделът за сигурност.
Препоръчва се PostgreSQL, тъй като е безплатна и високофункционална. Чувал съм, че функциите на PostgreSQL са били бавни, но последните са се подобрили и са по-бързи.
Версиите са следните.
Версия на CentOS | 7.6 (1810) |
---|---|
Версия на PostgreSQL | 9.2.24 |
Съдържание
1. инсталиране на
Този раздел описва процедурата за инсталиране на PostgreSQL.
1-1. Инсталиране на PostgreSQL
Извършете инсталацията на PostgreSQL с помощта на командата yum. Извършете работата като потребител root.
[username@hostname ~]$ su -
[root@hostname ~]# yum -y install postgresql-server
2. Подробности за настройката
Този раздел описва конфигурацията до стартирането на PostgreSQL.
2-1. Създайте специален потребител на PostgreSQL.
Исках да създам специален потребител, който да работи с PostgreSQL (да използва команди psql), но потребителят вече беше създаден. Спомням си, че създавах потребители, когато ги създавах в миналото, така че може би спецификацията се е променила.
Опитайте да преминете към потребител със следната команда.
[root@hostname ~]# su - postgres
Тъй като някои хора може би използват по-стара версия на PostgreSQL, трябва да се спомене, че процедурата за задаване на променливи на средата чрез промяна на следния ".bashrc" също вече не е необходима.
export PGHOME=/var/lib/pgsql
export PGDATA=/var/lib/pgsql/data
export PGHOST=localhost
Сега изглежда, че PGDATA по подразбиране за потребителите на postgres е '/var/lib/pgsql/data'. Описано е, че се отнася към "/usr/lib/systemd/system/postgresql.service".
2-2. Подготовка на данни за PostgreSQL
Създаване на данни в PostgreSQL. Кодировката е UNICODE. Директорията "/var/lib/pgsql/data" е създадена по подразбиране, но от тези, които не са я създали, също се изисква да създадат папка.
-bash-4.2$ initdb --encoding=UNICODE
Тъй като "PGDATA=/var/lib/pgsql/data" е зададено в "/usr/lib/systemd/system/postgresql.service", "initdb --encoding=UNICODE" ще изгради БД под "/var/lib/pgsql/ data/", БД е изградена в "/var/lib/pgsql/data/".
2-3. Промяна на конфигурационния файл
Разрешаване на достъпа на IP адреси до PostgreSQL. Настройте системата така, че да бъде удостоверена с парола за нелокален достъп.
[root@hostname ~]# vi /var/lib/pgsql/data/postgresql.conf
Променете файла 'postgresql.conf', както следва.
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
#listen_addresses = 'localhost' # what IP address(es) to listen on;
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
За да добавим, че това е важна част от сигурността, ако въведете тази настройка, ще можете да получите достъп до сайта от всеки IP адрес. Ако IP адресът, до който трябва да се осъществи достъп, е фиксиран, посочете фиксирания IP адрес.
Тази настройка е необходима, когато влизате в системата от сървър, различен от този, на който е инсталирана PostgreSQL, напр. pgadmin. Тази настройка не е необходима, ако влезете в сървъра и изпълните командата psql. (тъй като връзката произхожда от него (localhost))
Това е важна настройка за сигурност, затова сведете до минимум броя на потребителите, които имат достъп до нея.
След това променете файла 'pg_hba.conf'.
[root@hostname ~]# vi /var/lib/pgsql/data/pg_hba.conf
Добавете следната информация в края на документа.
#Удостоверяване на парола отвън.
host all all 0.0.0.0/0 md5
Ако включите тази настройка, при свързване отвън се изисква парола. Тези области могат да бъдат сериозна дупка в сигурността, ако не са настроени или са настроени неправилно, затова ви молим да ги настроите с най-голямо внимание.
2-4. проверка на bootstrap
След като предварителната конфигурация е завършена, проверете дали PostgreSQL се стартира. Тъй като БД е създадена като потребител на postgres, превключете на потребителя на postgres, преди да започнете.
[root@hostname ~]# su - postgres
-bash-4.2$ pg_ctl start
След като PostgreSQL е стартирана успешно, проверете дали командата psql работи без проблеми. Изпълнете командата psql като потребител на postgres.
-bash-4.2$ psql -l
Database List
Name | Owner | Encoding | Collation Order | Ctype(conversion operator) | Access rights
-----------+----------+------------------+--------------------+----------------------------+-----------------------
postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(3 lines)
Няма проблем, ако се върнат горните резултати.
2-5. Настройка за автоматично стартиране
Въпреки че не е задължително, трудно е да се стартира PostgreSQL при всяко рестартиране на сървъра, затова е конфигуриран така, че PostgreSQL да се стартира автоматично при стартиране на сървъра. Той се регистрира и в командата systemctl. Обърнете внимание, че тази процедура е за CentOS7, така че ако използвате нещо различно от CentOS7, ще трябва да използвате командата Service, за да се справите с това.
Проверете дали съществува '/usr/lib/systemd/system/postgresql.service'. Ако не, създайте 'postgresql.service', като използвате следната процедура. Стартирайте като потребител root.
[root@hostname ~]# touch /etc/systemd/system/postgresql.service
[root@hostname ~]# vi /etc/systemd/system/postgresql.service
Предоставя се следната информация.
[Unit]
#Описание.
Description=PostgreSQL
#Контрол преди и след изпълнението.
#Before=xxx.service
After=network.target
[Service]
#Определяне на потребител и група
User=postgres
Group=postgres
#След като се активира, задайте статус Активирано.
Type=oneshot
RemainAfterExit=yes
#Стартиране, спиране и презареждане.
Environment=PGDATA=/var/lib/pgsql/data
ExecStart=/usr/bin/pg_ctl start -D /var/lib/pgsql/data
ExecStop=/usr/bin/pg_ctl stop
ExecReload=/usr/bin/pg_ctl reload
[Install]
#Еквивалентни настройки на ниво Runlevel 3.
WantedBy=multi-user.target
След това се регистрирайте с командата systemctl.
[root@hostname ~]# systemctl enable postgresql
[root@hostname ~]# systemctl is-enabled postgresql
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep postgresql
postgresql.service enabled
[root@hostname ~]# systemctl daemon-reload
2-6. Добавяне на административен потребител в PostgreSQL
Създайте потребител, който да се използва в приложението PostgreSQL, отделно от потребителя, който работи с PostgreSQL от Linux. Това е потребителят при работа с pgadmin и т.н. Искам да променя паролата на потребителя на postgres, който съществува по подразбиране, и да го използвам.
Изпълнете следната команда като потребител на postgres.
-bash-4.2$ psql
postgres=# alter role postgres with password '(компютърна) парола';
postgres=# \q
※Въведете паролата, която искате да зададете, в полето "Парола".
2-7. Пробиване на защитни стени
Разрешете достъпа до порта на PostgreSQL, тъй като защитната стена (iptables за CentOS6 и по-ранни версии) разрешава само ssh достъп по подразбиране в CentOS7. Добавете и опцията "постоянно", за да направите конфигурацията постоянна.
[root@hostname ~]# firewall-cmd --permanent --zone=public --add-port=5432/tcp
[root@hostname ~]# firewall-cmd --reload
[root@hostname ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client http https ssh
ports: 8080/tcp 5432/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Ако е написано "портове: 5432/tcp", всичко е наред.
Достъп чрез pgadmin. Трябва да можете да влезете като потребител на postgres с паролата, която току-що зададохте.
3. резюме
Описахме първоначалната конфигурация, необходима при инсталирането на PostgreSQL. Първоначалното изграждане на PostgreSQL може да се окаже трудна задача, затова вижте този раздел.
Благодарим ви, че гледахте до края.
■INFORMATION
Моля, кликнете тук, за да преминете към горната страница на ИНФОРМАЦИЯТА.
■PROFILE
■Данни за контакт.
За запитвания относно статията, моля, свържете се с нас тук.