Как установить PostgreSQL в Debian 9

12 set 2022 3 min di lettura
Как установить PostgreSQL в Debian 9
Indice dei contenuti

Введение

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

В этом руководстве мы объясним, как установить Postgres на VPS с Debian 9 Stretch.

Установить PostgreSQL

Вы можете установить PostgresSQL, используя официальный репозиторий Debian с помощью apt.

Обновите список пакетов:

sudo apt update

Установить PostgreSQL

sudo apt install postgresql postgresql-contrib

Используйте PostgreSQL

По умолчанию Postgres использует концепцию, называемую « ролями », для обработки аутентификации и авторизации, аналогичную обычным учетным записям в стиле Unix.

При установке Postgres настроен на использование идентификационной аутентификации, что означает, что он сопоставляет роли Postgres с соответствующим пользователем системы Linux. Если в Postgres существует роль с тем же именем, что и у пользователя Linux, они смогут войти в систему под этой ролью.

Процедура установки создала учетную запись пользователя с именем postgres, связанную с ролью Postgres по умолчанию.

Для использования этой учетной записи и доступа к postgres существует несколько процедур.

Чтобы войти в систему с пользователем postgres, из терминала:

sudo -i -u postgres

Затем, чтобы получить доступ к приглашению Postgres и управлять базой данных, введите;

psql

Чтобы выйти из командной строки Postgres, введите:

\q

Создать новую роль

В настоящее время в базе данных настроена только роль postgres. Вы можете создавать новые роли из командной строки с помощью команды « Создать их ». Параметр --interactive спросит у вас имя новой роли и следует ли включить права суперпользователя.

Если у вас все еще активна подсказка postgres, введите:

\q

Если вы вошли в систему с учетной записью postgres, вы можете создать нового пользователя с помощью следующей команды:

createuser --interactive

Если вы вошли в систему с другой учетной записью, еще не связанной с postgres, используйте следующую команду:

sudo -u postgres createuser --interactive

Вам будет предложено ввести имя для новой роли и назначить ей права суперпользователя.


Enter name of role to add: noviello
 Shall the new role be a superuser? (y/n) y

Создать новую базу данных

Система аутентификации Postgres по умолчанию связывает роль с одноименной базой данных.

Поэтому, если ранее созданный пользователь называется noviello, эта роль попытается подключиться к базе данных, которая по умолчанию также называется noviello. Вы можете создать соответствующую базу данных с помощью команды createdb.

Если вы вошли в систему с учетной записью postgres, вы можете создать новую базу данных с помощью следующей команды:

createdb noviello

Если вы вошли в систему с другой учетной записью, еще не связанной с postgres, используйте следующую команду:

sudo -u postgres createdb noviello

Чтобы получить доступ к приглашению Postgres с только что созданной новой ролью, должен существовать пользователь Linux, в данном случае на Debian, с тем же именем, которое присвоено роли и базе данных.

Если пользователя с таким именем нет, вы можете создать его с помощью команды adduser.

Выполните эту процедуру с учетной записью пользователя, отличной от postgres.

Чтобы создать нового пользователя:

sudo adduser noviello

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

sudo -i -u noviello
psql

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

psql -d postgres

Чтобы получить информацию о текущем соединении:

\conninfo

Вы должны увидеть ответное сообщение, подобное этому:


You are connected to database "noviello" as user "noviello" via socket in "/var/run/postgresql" at port "5432".

Добавлять и удалять данные в таблицах

Ниже приведен пример создания таблицы:


CREATE TABLE test (
 id serial PRIMARY KEY,
 esempio_1 varchar (50) NOT NULL,
 esempio_2 varchar (25) NOT NULL,
 esempio_3 varchar(25) check (esempio_3 in ('valore_1', 'valore_2', 'valore_3', 'valore_4', 'valore_5', 'valore_6', 'valore_7', 'valore_8')),
 data_ins date
 );

Чтобы просмотреть только что созданную таблицу:

\d

Вы должны увидеть ответное сообщение, подобное этому:


 List of relations
 Schema | Name | Type | Owner
 --------+-------------------------+----------+---------
 public | test | table | noviello
 public | test_id_seq | sequence | noviello
 (2 rows)

Чтобы просмотреть таблицу без дополнительной информации:

\dt

Вы должны увидеть ответное сообщение, подобное этому:


 List of relations
 Schema | Name | Type | Owner
 --------+------------+-------+---------
 public | test | table | noviello
 (1 rows)

Чтобы вставить новые значения в таблицу:

INSERT INTO test (esempio_1, esempio_2, esempio_3, data_ins) VALUES ('valore_1', 'valore_2', 'valore_3', '2018-06-29');

INSERT INTO test (esempio_1, esempio_2, esempio_3, data_ins) VALUES ('valore_4', 'valore_5', 'valore_6', '2018-06-29');

Чтобы получить только что введенную информацию:

SELECT * FROM test;

Вы должны увидеть ответное сообщение, подобное этому:


 id | esempio_1 | esempio_2 | esempio_3 | data_ins
 ----+-----------+-----------+-----------+------------
 1 | valore_1 | valore_2 | valore_3 | 2018-06-29
 2 | valore_4 | valore_5 | valore_6 | 2018-06-29
 (2 row)

Чтобы удалить строку из базы данных:

DELETE FROM test WHERE esempio_1 = 'valore_1';

Снова извлеките информацию из базы данных, чтобы убедиться, что строка была удалена:

SELECT * FROM test;

Вы должны увидеть ответное сообщение, подобное этому:


 id | esempio_1 | esempio_2 | esempio_3 | data_ins
 ----+-----------+-----------+-----------+------------
 2 | valore_4 | valore_5 | valore_6 | 2018-06-29
 (1 row)

Удалить и добавить столбцы в таблицы

Чтобы добавить столбец в базу данных:

ALTER TABLE test ADD altro date;

Для просмотра изменений повторите следующую команду:

SELECT * FROM test;

Вы должны увидеть ответное сообщение, подобное этому:


 id | esempio_1 | esempio_2 | esempio_3 | data_ins | altro
 ----+-----------+-----------+-----------+------------+-----------
 2 | valore_4 | valore_5 | valore_6 | 2018-06-29 |
 (1 row)

Чтобы удалить столбец:

ALTER TABLE test DROP altro;

Для просмотра изменений повторите следующую команду:

SELECT * FROM test;

Вы должны увидеть ответное сообщение, подобное этому, без столбца, созданного выше:


 id | esempio_1 | esempio_2 | esempio_3 | data_ins
 ----+-----------+-----------+-----------+------------
 2 | valore_4 | valore_5 | valore_6 | 2018-06-29
 (1 row)

Изменить данные в таблице

Чтобы изменить данные, вам нужно указать имя базы данных и столбец, который вы хотите изменить:

UPDATE test SET esempio_2 = 'nuovo_valore' WHERE esempio_1 = 'valore_4';

Для просмотра изменений повторите следующую команду:

SELECT * FROM test;

Вы должны увидеть ответное сообщение, подобное этому:


 id | esempio_1 | esempio_2 | esempio_3 | data_ins
 ----+-----------+-----------+-----------+------------
 2 | valore_4 | nuovo_valore | valore_6 | 2018-06-29
 (1 row)

Вывод

Установка PostgreSQL на Debian 9 Stretch завершена.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.