PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да инсталирате PostgreSQL 12 на Ubuntu 20.04 DigitalOcean

Функции и случаи на употреба на PostgreSQL

PostgreSQL е система за управление на обектно-релационни бази данни (СУБД) с отворен код. Това е усъвършенствана система за управление и анализ на база данни, която се използва главно за платформи за електронна търговия, платежни транзакции и различни решения за съхранение на данни. Той съществува повече от 30 години и се актуализира редовно всяка година, поддържа различни SQL функции като тригери, дефинирани от потребителя типове и функции, подзаявки и т.н.

PostgreSQL е една от най-модерните бази данни с отворен код в света. Подходящ е за няколко случая на използване в производството и разработката. Той предоставя многобройни предимства като подобрена производителност на разделяне и заявка (особено при големи набори от данни), подобрения в B-дървото за оптимално използване на пространството, статистика за най-често срещаните стойности в няколко колони (MCV), общи изрази на таблици с вграждане на заявка и контрол на контролната сума.

Няколко думи за Ubuntu 20.04 на DigitalOcean

Ubuntu е популярна настолна операционна система с отворен код. Ubuntu 20.04 включва многобройни авангардни функции, като инструмент за управление на моментни снимки на ZFS, голяма промяна в ядрото и подобрения в сигурността. Облачната платформа DigitalOcean осигурява стабилна инфраструктура и глобална достъпност за разработване, управление и мащабиране на приложения в облака. Със своите продукти за изчисление, съхранение, бази данни и мрежови продукти, разработчиците могат да създават уеб и мобилни приложения, стрийминг услуги, игри, SaaS решения и др. Предлагайки функции като споделена частна мрежа, инструменти за DevOps с едно щракване и SSD твърди дискове, DigitalOcean е гъвкав, сигурен и прост избор за критични решения.

Този урок предоставя подробни инструкции как да инсталирате PostgreSQL на DigitalOcean Ubuntu 20.04. Без повече приказки, нека да започнем!

Искате да настроите PostgreSQL автоматично само с няколко щраквания?

Научете повече за това как ScaleGrid може да ви помогне да внедрите PostgreSQL на DigitalOcean за броени минути и ни оставете да завършим целия процес на настройка, конфигуриране и инсталиране! Вижте нашата страница PostgreSQL на DigitalOcean, за да видите как ScaleGrid може да ви позволи да се съсредоточите повече върху разработването на вашия продукт и по-малко върху управлението на бази данни. Или просто следвайте нашето просто ръководство за това как да започнете с PostgreSQL на DigitalOcean с ScaleGrid и опитайте сами с нашия безплатен 30-дневен пробен период!

Предварителни условия за инсталиране на PostgreSQL

Преди да се потопим в действителната инсталация на PostgreSQL 12 на DigitalOcean Ubuntu 20.04, трябва да се уверите, че вашата система отговаря на следните предпоставки.

  • Сървърът трябва да има поне основна UFW защитна стена, за да гарантира, че са разрешени само връзки към определени услуги.
  • Системата трябва да бъде актуализирана за нов екземпляр на сървъра и да се рестартира. За да направите това, използвайте следните команди:
    • sudo apt update && sudo apt upgrade –y
    • sudo reboot

Инсталиране на PostgreSQL на Ubuntu 20.04 DigitalOcean

Можете да инсталирате PostgreSQL 12, като използвате официални/стандартни хранилища на Ubuntu 20.04, като използвате системата за мениджър на пакети apt. Преди да направите това, вече трябва да сте опреснили индекса на локалния пакет на вашия сървър (вижте предпоставките по-горе).

Хранилището съдържа различни пакети (включително добавки на трети страни), като например:

  • postgresql-клиент
  • postgresql
  • libpq-dev
  • postgresql-server-dev
  • pgadmin пакети

След това инсталирайте пълния пакет PostgreSQL 12 заедно с модула postgresql-contrib, който предоставя допълнителни помощни програми и функционалност. Това може да бъде инсталирано, като изпълните следната команда:

sudo apt install postgresql postgresql-contrib –y

След това стартирайте услугата PostgreSQL при рестартиране на системата, като изпълните следната команда:

sudo systemctl start postgresql

За да стартирате автоматично услугата PostgreSQL при стартиране на системата, изпълнете:

sudo systemctl enable postgresql

Проверете дали услугата PostgreSQL работи според очакванията, като стартирате systemctl status postgresql:

sudo systemctl status postgresql

Това трябва да върне състоянието на услугата PostgreSQL и да се покаже активно, подобно на екранната снимка по-долу.

Персонализиране на инициализацията на PostgreSQL

След инсталацията може да се създаде клъстер на база данни с помощта на командата initdb. Командата initdb трябва да се изпълнява от потребителя на базата данни, а не от root потребителя. Потребителят root може да създаде празна директория, която може да бъде chowned (команда за промяна на собственика) от потребителя на postgres. Тази директория ще съдържа данните като шаблон, който ще бъде копиран във всички бази данни по подразбиране. От потребителя на postgres може да се извика следната команда с подходящата опция и име на директория.

initdb [option...] [ --pgdata | -D ] directory

Командата initdb може да се изпълнява като удостоверен потребител с различни флагове, за да се създаде db шаблон в дадена директория.

По-долу е предоставен списък с конкретни флагове, както се вижда на екранната снимка по-горе:

  • --encoding UTF8 (може да бъде всяка въз основа на Locale).
    • Флагът за кодиране задава кодирането на шаблона на базата данни. Всички бази данни, създадени с помощта на този шаблон, също ще използват един и същ метод на кодиране, освен ако не е посочен отделно. Има много налични методи за кодиране за различни езици.
  • --pgdata test (този флаг създава директория с име “test” за съхраняване на данните от базата данни).
    • Указва директорията, в която клъстерът на базата данни записва своите данни.
  • -A peer (това определя метода за удостоверяване, използван във файла pg_hba.conf).
    • Указва метода за удостоверяване по подразбиране за локални потребители, използван в pg_hba.conf (хост и локални линии). initdb ще попълни предварително записи pg_hba.conf, използвайки посочения метод за удостоверяване за нерепликация, както и връзки за репликация.
  • -k (използва контролна сума на данните за проверка на I/O грешки)
    • Указва контролната сума на данните на всички страници с данни за откриване на повреда на I/O системата. Това обаче забавя скоростта на обработка на базата данни).

Обезопасяване на вашата PostgreSQL база данни

По време на инсталацията по подразбиране автоматично се създава нов потребител с име postgres. Този потребител има пълни системни привилегии, така че е важно да защитите потребителския акаунт със силна парола.

sudo passwd postgres

Сега преминете към потребителския акаунт на postgres. Потребителят трябва да има привилегии sudo.

sudo su – postgres

Версията на PostgreSQL може да бъде потвърдена, като стартирате

psql -c "SELECT version();"

За да промените паролата на postgres команда за използване на потребителя:

psql -c "ALTER USER postgres WITH PASSWORD 'MyNewPassword'";

Забележка:Тази парола е приложима само когато postgres потребителят се свързва с PostgreSQL през мрежата.

За достъп до базата данни Postgres можете да влезете в базата данни PostgreSQL с:

psql postgres

По подразбиране PostgreSQL не изисква удостоверяване с парола от потребители на локалната система за достъп до базата данни. Това се нарича „peer authentication“. Въпреки това, удостоверяването с парола може да бъде активирано от pg_hba.conf файл.

За да редактирате този pg_hba.conf файл, използвайте \q команда за излизане от обвивката на postgres и за влизане в обвивката на Linux. От вътрешността на обвивката на Linux редактирайте pg_hba.conf файл. Уверете се, че сте направили резервно копие, преди да редактирате файла.

sudo cp /etc/postgresql/12/main/pg_hba.conf /etc/postgresql/12/main/pg_hba.conf.bak

След това редактирайте файла с помощта на nano редактор,

nano /etc/postgresql/12/main/pg_hba.conf

Намерете локалния ред под „Само връзки със сокет на Unix домейн“ и променете METHOD атрибут от peer към md5 .

Презаредете услугата PostgreSQL, за да приложите новите настройки.

sudo systemctl reload postgresql

Моля, имайте предвид, че има двама потребители с името postgres; единият е потребителят на Linux за свързване и достъп до базата данни, а другият е потребителят на базата данни, който се използва за изпълнение на административни роли в базата данни.

Конфигуриране на вашата PostgreSQL база данни

PostgreSQL може да се конфигурира ръчно за слушане адреси и портове чрез промяна на необходимите параметри във файла postgresql.conf.

По подразбиране се използва PostgreSQL порт 5432 и слуша на localhost. Това може да се промени чрез редактиране на конфигурационния файл.

sudo nano /etc/postgresql/12/main/postgresql.conf

Услугата ще бъде рестартирана след извършване на промени.

sudo systemctl restart postgresql

Създаване на нова роля в PostgreSQL 12

Удостоверяването и упълномощаването в PostgreSQL 12 се осъществяват чрез концепцията за „роля“. Тук ролята е гъвкав термин, който се отнася както за потребители, така и за групи.

Влезте в потребителя на postgres, като използвате следната команда:

sudo su postgres

Нови роли могат да се създават интерактивно от командния ред с командата createrole –interactive. Тук използването на флага –interactive ще създаде подкана за името на новата роля и дали на тази роля трябва да бъдат присвоени разрешения на суперпотребител.

Нов потребител може да бъде създаден с нова роля извън обвивката на потребителя postgresql като:

createuser –interactive

Резултатът от новата потребителска команда трябва да изглежда така.

Създаване и изтриване на база данни във вашия PostgreSQL сървър

В PostgreSQL 12, когато се създаде нова роля, трябва да съществува нова база данни със същото име, тъй като ролята се опитва да се свърже с базата данни по подразбиране. Така, както в предишния раздел, където е създаден потребителският liam, може да се създаде база данни с това име с помощта на следната команда:

createdb liam

В PostgreSQL 12 има множество пътища за създаване на бази данни според изискванията:

  • Когато сте влезли от акаунта на postgres:postgres@server:~$ createdb liam
  • Използвайте sudo , sudo –u postgres created liam

За да изтрием базата данни, можем да използваме

dropdb liam

Отваряне на подкана на Postgres с новата роля

Потребител на Linux със същото име като базата данни и роля на Postgres може да бъде създаден за влизане с удостоверяване, базирано на идентификация.

Потребител на Linux може да бъде създаден (ако вече не съществува) от командния ред, като напишете:

sudo adduser noah

След като потребителят бъде създаден, той може да влезе в системата с помощта на следната команда;

sudo -u noah psql

Текущата база данни и потребителска информация могат да бъдат достъпни с помощта на;

\conninfo

Управление на PostgreSQL

Създаване и изтриване на таблици

SQL командата CREATE TABLE може да се използва за създаване на всяка таблица в база данни. В командата трябва да се посочи списък с колони и тип данни за всяка колона.

CREATE TABLE customers (customer_id int, first_name varchar(80), last_name varchar(80));

Тази команда ще създаде таблица с име „клиенти“. Първата колона ще съдържа идентификатора на клиента от типа цяло число. Втората и третата колона са от тип символ и ще съдържат собствените и фамилните имена на клиентите с максимална дължина от 80 знака.

Тази нова таблица може да се види, като напишете \d .

Таблицата може да бъде изтрита, като напишете:

DROP TABLE customers;

Вмъкване, избиране и изтриване на данни в таблица

Данните се добавят в таблиците на PostgreSQL под формата на редове. Всеки ред представлява отделен набор от данни. Данните могат да бъдат вмъкнати в реда с помощта на командата INSERT INTO. Името на командата е последвано от „име на таблица“ (в следващия пример клиенти), ключовата дума VALUES, списък със стойности, разделени със запетая.

INSERT INTO customers VALUES (1, 'Owen', 'Buyer');

INSERT INTO customers VALUES (2, 'Luke', 'Seller');

Съдържанието на таблицата може да се види с помощта на командата SELECT.

SELECT * FROM customers;

Ред може да бъде изтрит с помощта на DELETE команда. WHERE ключова дума се използва за условно избиране на редовете.

DELETE FROM customers WHERE last_name = 'Seller';

За да изтриете всички редове, въведете:

SELECT * FROM customers;

Добавяне и изхвърляне на колони от таблица

PostgreSQL 12 предоставя възможността да добавяте или изтривате колони от съществуващите таблици с лекота.

ALTER TABLE командата се използва заедно с ADD ключова дума, за да добавите колона към съществуваща таблица. Това поле е празно за съществуващите редове в таблицата.

ALTER TABLE customers ADD branch_id int;

Същата команда се използва с DROP ключова дума, за да изтриете посочената колона от таблицата.

ALTER TABLE customers DROP first_name;

Актуализиране на данни в таблица

Освен добавяне и изтриване на записи в таблица, ние също можем да ги модифицираме. Това може да стане с помощта на UPDATE команда. Трябва да посочим колоните, които трябва да бъдат редактирани с новите стойности.

UPDATE customers SET last_name= 'Buyer' WHERE customer_id = '1';

Съображения за производствената среда

PostgreSQL 12 може да се използва безопасно в производствена среда. Тази база данни е толкова стабилна, че не трябва да има проблеми с нейното внедряване в голям мащаб. За повече информация, моля, вижте предишната ни статия тук.

Заключение

Този урок ви показа как да настроите PostgreSQL 12 на сървър на Ubuntu 20.04, работещ на DigitalOcean. PostgreSQL 12 е сложно приложение с много нови и усъвършенствани функции, като подобрено управление на пространството на стандартни индекси на B-дърво и поддръжка за едновременно възстановяване на индекси и покриване на създаване на индекси. Версия 12 също така поддържа вградени WITH заявки и съпоставяния, предоставени от ICU, подобрява разделянето на дялове и предоставя интерфейс за съхранение на таблици с възможност за добавяне за създаване и използване на различни методи за съхранение на таблици.

Сега, когато знаете основите на настройката и използването на PostgreSQL сървър, защо не изпробвате управлявана алтернатива? С управлявана услуга като ScaleGrid можете да завършите целия процес на настройка, инсталиране и конфигуриране с едно натискане на бутон. Започнете своя безплатен 30-дневен пробен период днес и се уверете сами! Не се изисква кредитна карта и можете да настроите първата си база данни за броени минути.

Тук разгледахме основите на инсталацията и също така предоставихме някои инструкции за общо администриране на база данни. Надяваме се, че сте намерили това ръководство за полезно.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте PostgreSQL ROLE (потребител), ако не съществува

  2. Как да избягате от низ, докато съвпадате с шаблон в PostgreSQL

  3. Импортирайте XML файлове в PostgreSQL

  4. Групово/партидна актуализация/внасяне в PostgreSQL

  5. Ограничение за проверка на PostgreSQL за условие за външен ключ