В этом руководстве мы объясним десять полезных и практичных команд PostgreSQL в Linux.
PostgreSQL — очень мощная система управления объектно-реляционными базами данных. По сообщениям, это SQL, предназначенный для обработки множества одновременных пользователей и ряда рабочих нагрузок. PostgreSQL совместим с различными операционными системами, такими как macOS, Windows, FreeBSD и Linux, о чем будет рассказано в этой статье.
Мы установим PostgreSQL на Ubuntu 22.04, но вы можете выбрать любой дистрибутив Linux. Давайте начнем!
Предпосылки
- Сервер с Ubuntu 22.04 в качестве ОС
- Права пользователя: пользователь root или обычный пользователь с привилегиями sudo
Обновите систему
Свежая установка Ubuntu 22.04 требует обновления пакетов до последних доступных версий.
sudo apt-get update -y && sudo apt-get upgrade -y
Установите PostgreSQL
Последняя версия PostgreSQL 14 доступна в репозитории Ubuntu 22.04 по умолчанию, поэтому нам просто нужно выполнить следующую команду:
sudo apt install postgresql postgresql-contrib
После установки запустите и включите службу PostgreSQL.
sudo systemctl enable postgresql.service && sudo systemctl start postgresql.service
Проверьте, запущена ли служба и порт PostgreSQL — запустить команду ниже:
sudo netstat -tunlp | grep 5432
Вы должны получить следующий вывод:
root@vps:~# sudo netstat -tunlp | grep 5432
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 370876/postgres
Чтобы проверить установленную версию PostgreSQL, выполните следующую команду:
sudo psql --version
Вы должны получить следующий вывод:
root@host:~# sudo psql --version
psql (PostgreSQL) 14.6 (Ubuntu 14.6-0ubuntu0.22.04.1)
1. Доступ к консоли PostgreSQL
Чтобы получить доступ к консоли PostgreSQL, выполните на своем сервере следующую команду:
sudo -u postgres psql
Вы должны получить следующий вывод:
root@vps:~# sudo -u postgres psql
psql (14.6 (Ubuntu 14.6-0ubuntu0.22.04.1))
Type "help" for help.
postgres=#
2. Получение списка баз данных
Чтобы просмотреть базу данных в Postgres, выполните следующую команду:
\l
Вы должны получить следующий вывод:
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(3 rows)
postgres=#
3. Выберите базу данных
Чтобы выбрать базу данных, выполните команду \c «имя базы данных»:
Вы должны получить следующий вывод:
postgres=# \c postgres
You are now connected to database "postgres" as user "postgres".
Теперь мы можем проверить размер текущей базы данных (postgres).
SELECT pg_database_size(current_database());
Это вернет размер в байтах
postgres=# SELECT pg_database_size(current_database());
pg_database_size
------------------
8774435
(1 row)
Если вы хотите, чтобы вывод был в удобочитаемом формате в килобайтах, мегабайтах или гигабайтах, выполните следующую команду:
select pg_size_pretty(pg_database_size(current_database()));
Теперь вывод должен выглядеть так:
pg_size_pretty
----------------
8569 kB
(1 row)
4. Список пользователей и назначенных ролей
Чтобы получить список пользователей и назначенных им ролей, выполните следующую команду:
\du
Вы должны получить таблицу в качестве вывода с пользователем PostgreSQL и его привилегиями, как описано ниже:
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
5. Создание базы данных и пользователя в PostgreSQL
Чтобы создать новую базу данных в PostgreSQL, выполните следующую команду:
create database my_db;
После создания базы данных вы получите следующий вывод:
postgres=# create database my_db;
CREATE DATABASE
Чтобы создать нового пользователя с паролем, выполните следующую команду:
CREATE USER my_user WITH ENCRYPTED PASSWORD 'StrongPasswordHere';
После создания пользователя вы получите следующий вывод:
postgres=# CREATE USER my_user WITH ENCRYPTED PASSWORD 'StrongPasswordHere';
CREATE ROLE
Теперь давайте добавим привилегии в созданной базе данных только что созданному пользователю.
grant all privileges on database my_db to my_user;
Теперь, если вы перечислите базы данных с помощью команды \l, вы получите следующие строки:
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+----------------------
my_db| postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres +
| | | | | postgres=CTc/postgres+
| | | | | testuser=CTc/postgres
6. Подключитесь к базе данных с назначенным пользователем
Чтобы подключиться к базе данных под определенным пользователем, выполните следующую команду:
\c my_db my_user
Введите пароль, и вы получите следующий вывод:
postgres=# \c my_db my_user;
Password for user my_user:
You are now connected to database "my_db" as user "my_user".
my_db=>
7. Изменить пароль пользователя
Чтобы изменить пароль пользователя, выполните следующую команду:
ALTER USER my_user WITH PASSWORD 'NewPasswordHere';
После смены пароля вы должны получить следующее:
postgres=# ALTER USER my_user WITH PASSWORD 'NewPasswordHere';
ALTER ROLE
8. Перезагрузите конфигурацию PostgreSQL
Чтобы перезагрузить конфигурацию PostgreSQL без перезагрузки сервера, выполните следующую команду:
select pg_reload_conf();
После перезапуска вы получите следующий вывод:
postgres=# select pg_reload_conf();
pg_reload_conf
----------------
t
(1 row)
9. Проверьте версию PostgreSQL
Чтобы проверить версию PostgreSQL через командную строку postgres, выполните следующую команду:
SELECT version();
Вы должны получить вывод, подобный этому:
postgres=# SELECT version();
version
---------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 14.6 (Ubuntu 14.6-0ubuntu0.22.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0, 64-bit
(1 row)
10. Выйдите из командной строки PostgreSQL.
Чтобы выйти из командной строки PostgreSQL, выполните следующую команду:
\q
Поздравляем! Мы показали вам несколько полезных и практичных команд PostgreSQL, ежедневно используемых системными администраторами, разработчиками и некоторыми обычными пользователями.
Если вам понравился этот пост о десяти полезных и практичных командах PostgreSQL на Ubuntu 22.04, поделитесь им с друзьями в социальных сетях. Спасибо.