В тази статия ще ви покажем как да инсталирате PostgreSQL 12 на Ubuntu 20.04/18.04/16.04. PostgreSQL е система за бази данни с отворен код и е мощна като другите системи за релационни бази данни.
Можете да видите страницата за пускане на postgreSQL 12.
Стъпки за инсталиране на PostgreSQL 12 в Ubuntu
Стъпка 1:Актуализирайте системата Ubuntu
Винаги се препоръчва да актуализирате системата, преди да инсталирате PostgreSQL.
актуализация на sudo apt
Стъпка 2:Инсталирайте необходимия пакет
sudo apt -y инсталира vim bash-completion wget
Ако пакетът вече е инсталиран, тогава ще получите по-долу изход, можете да го игнорирате.
Примерен изход:
root@PostgreSQL:~# sudo apt -y install vim bash-completion wgetReading списъци с пакети... DoneBuilding дървото на зависимости Четене на информация за състоянието... Donebash-completion вече е най-новата версия (1:2.11-2ubuntu1).vim. вече е най-новата версия (2:8.2.0716-3ubuntu2).wget вече е най-новата версия (1.20.3-1ubuntu1).wget е настроен да се инсталира ръчно. Следният пакет беше инсталиран автоматично и вече не е необходим:virtualbox-guest -utilsИзползвайте 'sudo apt autoremove', за да го премахнете.0 надстроен, 0 новоинсталиран, 0 за премахване и 212 не надграден.root@PostgreSQL:~#
Стъпка 3:Добавете PostgreSQL 12 хранилище
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee /etc/apt/sources.list.d/pgdg.listпредварително>Стъпка 4:Инсталирайте PostgreSQL 12 на Ubuntu
sudo apt updatesudo apt -y инсталирайте postgresql-12 postgresql-client-12Примерен изход:
root@PostgreSQL:~# sudo apt -y install postgresql-12 postgresql-client-12Четене на списъци с пакети... DoneBuilding дърво на зависимости Четене на информация за състоянието... Готово Следният пакет беше автоматично инсталиран и вече не е необходим:virtualbox- guest-utilsИзползвайте 'sudo apt autoremove', за да го премахнете. Ще бъдат инсталирани следните допълнителни пакети:libcommon-sense-perl libjson-perl libjson-xs-perl libpq5libtypes-serialiser-perl pgdg-keyring postgresql-client-commonpost package :postgresql-doc-12 isagСледните НОВИ пакети ще бъдат инсталирани:libcommon-sense-perl libjson-perl libjson-xs-perl libpq5libtypes-serialiser-perl pgdg-keyring postgresql-12 postgresql-client-common postgresql-client-coml-12 sysstat0 е надстроен, 11 новоинсталирани, 0 за премахване и 212 не са надстроени. Трябва да получите 17,5 MB архиви. След тази операция ще бъдат използвани 59,4 MB допълнително дисково пространство. Вземете:1 http://apt.postgresql.org/ pub/repos/apt groovy-pgdg/main amd64 libpq 5 amd64 13.3-1.pgdg20.10+1 [177 kB]Get:2 http://us.archive.ubuntu.com/ubuntu groovy/main amd64 libcommon-sense-perl amd64 3.75-1build2 [20.5 kB]Вземете:3 http://us.archive.ubuntu.com/ubuntu groovy/main amd64 libjson-perl всички 4.02000-2 [80.9 kB]Get:4 http://apt.postgresql.org/pub/repos/apt groovy-pgdg /main amd64 pgdg-keyring all 2018.2 [10.7 kB]Get:5 http://apt.postgresql.org/pub/repos/apt groovy-pgdg/main amd64 postgresql-client-common всички 226.pgdg20 [.1 90.6 kB]Вземете:6 http://us.archive.ubuntu.com/ubuntu groovy/main amd64 libtypes-serialiser-perl всички 1.0-1 [12.1 kB]Вземете:7 http://us.archive.ubuntu.com /ubuntu groovy/main amd64 libjson-xs-perl amd64 4.020-1build1 [83,7 kB]Get:8 http://apt.postgresql.org/pub/repos/apt groovy-pgdg/main amd64 postgresql-client.112 amd74 -1.pgdg20.10+1 [1,429 kB]Get:9 http://us.archive.ubuntu.com/ubuntu groovy/main amd64 sysstat amd64 12.4.0-1 [471 kB]Get:10 http:// apt.postgresql.org/pub/repos/apt groovy-pgdg/main amd64 postgresql-common всички 226.pgdg20.10+1 [2 46 kB]Get:11 http://apt.postgresql.org/pub/repos/apt groovy-pgdg/main amd64 postgresql-12 amd64 12.7-1.pgdg20.10+1 [14.9 MB]Извлечено след 17.5 MB ( 1,141 kB/s) Предварително конфигуриране на пакети ...Избиране на неизбран преди това пакет libcommon-sense-perl.(Четене на база данни... 192977 файла и директории, инсталирани в момента.) Подготовка за разопаковане .../00-libcommon-sense-perl_3.75 -1build2_amd64.deb ...Разопаковане libcommon-sense-perl (3.75-1build2) ...Избиране на по-рано неизбран пакет libjson-perl.Подготовка за разопаковане .../01-libjson-perl_4.02000-2_all.deb ... Разопаковане на libjson-perl (4.02000-2) ...Избиране на по-рано неизбран пакет libtypes-serialiser-perl. Подготовка за разопаковане .../02-libtypes-serialiser-perl_1.0-1_all.deb ...Разопаковане libtypes-serialiser- perl (1.0-1) ...Избиране на по-рано неизбран пакет libjson-xs-perl. Подготовка за разопаковане .../03-libjson-xs-perl_4.020-1build1_amd64.deb ...Разопаковане на libjson-xs-perl (4.020 -1build1) ...Избиране на по-рано неизбран пакет libpq5:amd64.P ремонт за разопаковане .../04-libpq5_13.3-1.pgdg20.10+1_amd64.deb ...Разопаковане libpq5:amd64 (13.3-1.pgdg20.10+1) ...Избиране на неизбран пакет pgdg-keyring .Подготовка за разопаковане .../05-pgdg-keyring_2018.2_all.deb ...Разопаковане на pgdg-keyring (2018.2) ...Избиране на неизбран преди това пакет postgresql-client-common. Подготовка за разопаковане .../06-postgresql -client-common_226.pgdg20.10+1_all.deb ...Разопаковане на postgresql-client-common (226.pgdg20.10+1) ...Избиране на неизбран преди това пакет postgresql-client-12. Подготовка за разопаковане .../ 07-postgresql-client-12_12.7-1.pgdg20.10+1_amd64.deb ...Разопаковане на postgresql-client-12 (12.7-1.pgdg20.10+1) ...Избиране на по-рано неизбран пакет postgresql-com Подготовка за разопаковане .../08-postgresql-common_226.pgdg20.10+1_all.deb ...Добавяне на "отклонение на /usr/bin/pg_config към /usr/bin/pg_config.libpq-dev чрез postgresql-common'Unpacking postgresql-common (226.pgdg20.10+1) ...Избиране на по-рано неизбран пакет postgresql-12. Подготовка за разопаковане .../09-postgresql-12_12.7-1.pgdg20.10+1_amd64.deb ...Разопаковане на postgresql-12 (12.7-1.pgdg20.10+1) ...Избор на по-рано неизбран пакет sysstat. Подготовка към unpack .../10-sysstat_12.4.0-1_amd64.deb ...Разопаковане sysstat (12.4.0-1) ...Настройка на pgdg-keyring (2018.2) ...Премахване на ключа apt.postgresql.org от доверен. gpg:OKНастройване на libpq5:amd64 (13.3-1.pgdg20.10+1) ...Настройка на libcommon-sense-perl (3.75-1build2) ...Настройка на libtypes-serialiser-perl (1.0-1) .. .Настройка на libjson-perl (4.02000-2) ...Настройка на sysstat (12.4.0-1) ...Създаване на конфигурационен файл /etc/default/sysstat с нови варианти за актуализиране на версията:с помощта на /usr/bin/sar. sysstat за предоставяне на /usr/bin/sar (sar) в автоматичен режим Създадена символна връзка /etc/systemd/system/sysstat.service.wants/sysstat-collect.timer→ /lib/systemd/system/sysstat-collect.timer.Създадена символна връзка /etc/systemd/system/sysstat.service.wants/sysstat-summary.timer→ /lib/systemd/system/sysstat-summary.timer.Създадена символна връзка /etc/systemd/system/multi-user.target.wants/sys stat.service → /lib/systemd/system/sysstat.service.Настройка на postgresql-client-common (226.pgdg20.10+1) ...Настройка на libjson-xs-perl (4.020-1build1) ...Настройка up postgresql-client-12 (12.7-1.pgdg20.10+1) ...update-alternatives:използване на /usr/share/postgresql/12/man/man1/psql.1.gz за предоставяне на /usr/share/ man/man1/psql.1.gz (psql.1.gz) в автоматичен режим Настройка на postgresql-common (226.pgdg20.10+1) ...Добавяне на потребителски postgres към група ssl-certСъздаване на конфигурационен файл /etc/postgresql- common/createcluster.conf с нова версия Изграждане на речници на PostgreSQL от инсталирани пакети myspell/hunspell...en_us Премахване на остарели речникови файлове:Създадена символна връзка /etc/systemd/system/multi-user.target.wants/postgresql.service → /lib/systemd/ system/postgresql.service.Настройване на postgresql-12 (12.7-1.pgdg20.10+1) ...Създаване на нов PostgreSQL клъстер 12/main .../usr/lib/postgresql/12/bin/initdb -D / var/lib/postgresql/12/main --auth-local peer --auth-host md5 Файловете, принадлежащи към тази система от база данни, ще бъдат собственост на потребител "postgres". Този потребител също трябва да притежава сървърния процес. Клъстерът на базата данни ще бъде инициализиран с локал "en_US.UTF-8". Кодирането на базата данни по подразбиране е съответно зададено на "UTF8". Конфигурацията за текстово търсене по подразбиране ще бъде настроен на "английски". Контролните суми на страницата с данни са деактивирани. коригиране на разрешенията за съществуваща директория /var/lib/postgresql/12/main ... okсъздаване на поддиректории ... okизбиране на динамично изпълнение на споделена памет ... posix избиране на max_connections по подразбиране ... 100избиране споделени_буфери по подразбиране ... 128 MB избор на часова зона по подразбиране ... America/New_York създаване на конфигурационни файлове ... okrunning bootstrap скрипт ... добре изпълнение на инициализация след стартиране ... ok синхронизиране на данни към диск ... okSuccess. Вече можете да стартирате сървъра на базата данни, като използвате:pg_ctlcluster 12 main startVer Cluster Port Status Owner Директория с данни Регистрационен файл12 main 5432 down postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.logupdate- алтернативи:използване на /usr/share/postgresql/12/man/man1/postmaster.1.gz за предоставяне на /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) в автоматичен режим Обработка на тригери за systemd ( 246.6-1ubuntu1) ...Обработка на тригери за man-db (2.9.3-2) ...Обработка на тригери за libc-bin (2.32-0ubuntu3) ...root@PostgreSQL:~#Стъпка 5:Проверете състоянието на услугата PostgreSQL
systemctl status postgresql.service
Примерен изход:
root@PostgreSQL:~# systemctl status postgresql.service ● postgresql.service - PostgreSQL RDBMSLoaded:зареден (/lib/systemd/system/postgresql.service; активиран; vendor p> Активен:активен (излязъл) от нд 2021- 05-16 09:17:56 EDT; преди 1 мин. 56 секунди Основен PID:10932 (код=изход, статус=0/УСПЕХ) Задачи:0 (ограничение:4648) Памет:0BCGroup:/system.slice/postgresql.service09 май:16 17:56 PostgreSQL systemd[1]:Стартиране на PostgreSQL RDBMS... 16 май 09:17:56 PostgreSQL systemd[1]:Завършен PostgreSQL RDBMS.root@PostgreSQL:~#Стъпка 6:Свържете PostgreSQL
sudo su - postgresСтъпка 7:Нулирайте паролата на PostgreSQL
Препоръчително е да нулирате паролата до силна парола
psql -c "променете потребителски postgres с парола 'StrongAdminP@ssw0rd'"Примерен изход:
root@PostgreSQL:~# sudo su - postgrespostgres@PostgreSQL:~$ postgres@PostgreSQL:~$ psql -c "променете потребителски postgres с парола 'StrongAdminP@ssw0rd'" ПРОМЕНИ РОЛЯpostgres@PostgreSQL:~$Стъпка 8:Създайте PostgreSQL база данни
$ psql$ СЪЗДАВАНЕ НА БАЗА ДАННИ firsttestdb;$ СЪЗДАВАНЕ НА ПОТРЕБИТЕЛ testuser1 С КРИПИРАНА ПАРОЛА 'MyDBP@ss0rd';$ ПРЕДОСТАВЯТЕ ВСИЧКИ ПРИВИЛЕГИИ ВЪРХУ БАЗА ДАННИ firsttestdb на testuser1;
Избройте базата данни PostgreSQL:
$\l
Как да се свържете с PostgreSQL база данни:
\c firsttestdbПримерен изход:
postgres=# \c firsttestdbСега сте свързани към базата данни "firsttestdb" като потребител "postgres".firsttestdb=#Сега ще видим как да разрешим отдалечени връзки към PostgreSQL DB.
Стъпка 9:Разрешете отдалечена връзка с базата данни PostgreSQL
sudo nano /etc/postgresql/12/main/postgresql.confРазкоментирайте реда „listen_addresses =‘*’ “
Запазете файла и рестартирайте услугата PostgreSQL
sudo systemctl рестартирайте postgresqlСтъпка 10:Проверете адреса на слушане
netstat -tunelp | grep 5432Примерен изход:
root@PostgreSQL:~# netstat -antple | grep 5432tcp 0 0 0.0.0.0:5432 0.0.0.0:* СЛУШАЙТЕ 135 253939 13850/postgres tcp6 0 0 :::5432 :::* СЛУШАЙТЕ 135 253940 135 253940/postgres/postgres8 root.В края на статията видяхме как да инсталирате PostgreSQL 12 на Ubuntu 20.04/18.04/16.04.