Как зайти в postgresql из консоли linux

Обновлено: 06.07.2024

PostgreSQL (произносится «Пост-Грэс-Кью-Эл») — свободная объектно-реляционная система управления базами данных (СУБД).

Установка

После установки

После установки проверьте версию установленного PostgreSQL

postgres (PostgreSQL) 9.2.24

Расположение файлов с настройками, например, postgresql.conf можно получить выполнив

Password: config_file ------------------------------------- /var/lib/pgsql/data/postgresql.conf (1 row)

В этом примере директория, которая содержит настройки это

Полезно изучить её содержание

total 48 drwx------. 7 postgres postgres 67 Jun 9 22:54 base drwx------. 2 postgres postgres 4096 Jun 9 23:19 global drwx------. 2 postgres postgres 18 Jun 9 13:54 pg_clog -rw-------. 1 postgres postgres 4371 Jun 10 01:23 pg_hba.conf -rw-------. 1 postgres postgres 1636 Jun 9 13:54 pg_ident.conf drwx------. 2 postgres postgres 58 Jun 10 00:00 pg_log drwx------. 4 postgres postgres 36 Jun 9 13:54 pg_multixact drwx------. 2 postgres postgres 18 Jun 9 14:14 pg_notify drwx------. 2 postgres postgres 6 Jun 9 13:54 pg_serial drwx------. 2 postgres postgres 6 Jun 9 13:54 pg_snapshots drwx------. 2 postgres postgres 25 Jun 10 02:06 pg_stat_tmp drwx------. 2 postgres postgres 18 Jun 9 13:54 pg_subtrans drwx------. 2 postgres postgres 6 Jun 9 13:54 pg_tblspc drwx------. 2 postgres postgres 6 Jun 9 13:54 pg_twophase -rw-------. 1 postgres postgres 4 Jun 9 13:54 PG_VERSION drwx------. 3 postgres postgres 60 Jun 9 13:54 pg_xlog -rw-------. 1 postgres postgres 19889 Jun 10 01:43 postgresql.conf -rw-------. 1 postgres postgres 45 Jun 9 14:14 postmaster.opts -rw-------. 1 postgres postgres 92 Jun 9 14:14 postmaster.pid

Подключение к БД

Чтобы получить доступ к базам данных можно воспользоваться стандартной консолью psql.

Если Вы хотите подключиться из bash в Windows не забудьте добавить местоположение psql.exe (у меня это C:\Program Files\PostgreSQL\12\bin) в PATH

Как это делается описано в статье PATH

psql.exe -h localhost -p 5433 -U postgres

sudo su - postgres
psql

psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1)) Type "help" for help.

Если БД на локальном хосте

psql -h 127.0.0.1 -d DATABASENAME -U DATABASEUSERNAME

Получить данные о подключении

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

Список существующих БД

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

Обратите внимание на столбцы Encoding, Collate и Ctype. Знание кодировок может Вам пригодиться в будущем.

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

Создадим базу данных heihei_ru_db с кодировкой utf8

Создадим базу данных heihei с кодировкой utf8 и укажем значения для Collate, Ctype и Template

Проверим, что получилось

Если я в bash сделаю

То получу сразу четыре доступные кодировки

C
C.UTF-8
en_US.utf8
POSIX

Но создать БД, например, с en_US.utf8 у меня не получается

Приводит к ошибке

ERROR: invalid locale name: "en_US.UTF-8"

Если Вы знаете как решить эту проблему - отпишитесь в комментариях к статье.

UPD: Выполнил такую же команду в Ubuntu и база успешно создана

Удалить базу данных

Чтобы удалить базу данных воспользуйтесь командой

DROP DATABASE db_name;

Проверить кодировки

Проверить кодировку сервера можно командой

server_encoding ----------------- UTF8 (1 row)

Проверить кодировку клиента

client_encoding ----------------- WIN1252 (1 row)

Когда вы находитесь в интерактивном режиме PostgreSQL в консоле появляется префикс

Где db это название текущей базы данных

Показать адрес текущей директории

Вернуться в PostgreSQL можно выполнив

Зайти в БД

Чтобы начать работу с базой данных нужно знать её имя, например пусть Вам нужна база даныых, которую назвали просто HeiHei_ru_DB

You are now connected to database "HeiHei_ru_DB" as user "postgres".

Если вы работаете в Linux и база данных находится на том же хосте можно выполнить

psql -h 127.0.0.1 -d DATABASENAME -U DATABASEUSERNAME

Чтобы посмотреть список таблиц введите

List of relations
Schema | Name | Type | Owner
--------+--------+-------+----------
public | person | table | postgres
(1 row)

Чтобы посмотреть всю таблицу person уже можно использовать стандартный

SELECT * FROM person;

Запуск скрипта из файла

Сперва проверим, что с переменными окружения всё впорядке.

Для этого введём в консоль psql.exe нажмём Enter и проверим что bash не жалуется на неизвестную команду.

Если жалуется - прочитайте мои советы в статье Системная переменная PATH

Пишем скрипт script.sql

CREATE TABLE person ( id int, first_name VARCHAR(50), last_name VARCHAR(50), gender VARCHAR(5), date_of_birth DATE )

Применим этот скрипт к базе данных HeiHei_ru_DB

У меня postgres запущен локально на порту 5433. У Вас может быть на 5432 - проверьте.

cat script.sql | psql.exe -h localhost -p5433 -U postgres HeiHei_ru_DB

Password for user postgres:
CREATE TABLE

Саме время сделать что-то более близкое к реальному скрипту

На поля таблицы нужно ввести некоторые ограничения и добавить им свойств.

CREATE TABLE booking_sites ( id BIGSERIAL NOT NULL PRIMARY KEY, company_name VARCHAR(50) NOT NULL, origin_country VARCHAR(50) NOT NULL, age VARCHAR(3) NOT NULL, date_of_birth DATE NOT NULL, website_url VARCHAR(50) );

Теперь запустим этот скрпит уже не в тестовую а в рабочую базу данных heihei (которая совпадает с названием сайта HeiHei.ru, но если написать .ru будет синтаксическая ошибка ERROR: syntax error at or near ".")

cat booking_sites.sql | psql.exe -h localhost -p5433 -U postgres heihei

Password for user postgres:
CREATE TABLE

Содержание базы данных

В предыдущем параграфе мы создали в базе данных heihei таблицу booking_sites

Убедимся в том, что скрипт отработал удачно

Перейдём в базу данных heihei и проверим создалась ли таблица

You are now connected to database "heihei" as user "postgres".

List of relations Schema | Name | Type | Owner --------+---------------+-------+---------- public | booking_sites | table | postgres (1 row)

Описание таблицы

Если таблица создана какое-то время назад. Вы могли уже забыть, какие конкретно столбцы она содержит.

Пользователи

Получить список пользователей

List of roles Role name | Attributes | Member of -----------+------------------------------------------------+----------- postgres | Superuser, Create role, Create DB, Replication | <>

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

Когда нужно обновить название столбца таблицы используем команду ALTER

Предположим полю website_url не хватает 50 символов. Увеличим длину до 60.

ALTER TABLE booking_sites ALTER column website_url TYPE VARCHAR(60);

  • -h флаг указания хоста;
  • -U флаг указания пользователя;
  • -p флаг указания порта (по умолчанию он равен 5432).

Для входа в терминал можно использовать следующую строку, которая запросит пароль

Если вы в терминале, где уже установлена рабочая версия PostgreSQL, то вы можете войти под пользователя posgres, который по умолчанию является суперадминистратором СУБД PostgreSQL

Еще один способ входа, но уже без пароля

Как только вы подключитесь, вы можете начать уже делать запросы. В дополнение к основным запросам вы также можете использовать определенные команды. Команда \? предоставит вам список всех доступных команд.

Все по порядку про CRUD

Одна из хорошей вещей в PGSQL заключается в том, что он поставляется с некоторыми двоичными файлами, такими как createuser и createdb. Поэтому мы будем использовать их.

По умолчанию в Postgres сконфигурирован с единственным пользователем postgres, у которого есть все права на манипуляции в СУБД и является суперадминистратором.

Вышеупомянутая команда получает интерфейс командной строки psql в режиме полного администрирования.

Работа с пользователями

Создание пользователя посредством бинарника createuser

Задание пароля для пользователя

Создание пользователя посредством терминала psql

Работа с базой данных

Создание базы данных посредством бинарника createdb

Задание привилегий для пользователя на действия с базой данных

Создание базы данных посредством терминала psql

Установка прав пользователям

Установка пользователю роль администратора

Чтобы дать все права пользователю на операции с базой данных можно воспользоваться командой psql

Тоже самое по другому

Разрешение на соединение

Можно комбинировать несколько привилегий

Если мы хотим дать привилегии на действия всем пользователям, то пишем так

Если мы хотим дать привилегии на таблицы, то делаем так

Примечание. Ключевое слово SCHEMA означает тоже самое, что и имя базы данных.

Разрешение входа для пользователя postgres через phpPgAdmin

PostgresSQL по умолчанию имеет суперпользователя с логином postgres и вход через этот логин из вне запрещен. Поэтому, чтобы управлять базами через phpPgAdmin нам нужно войти, разрешив внешний вход. Делается через файл конфигурации phpPgAdmin, который называется config.inc.php.

В составе Vesta, данный файл конфигурации в Ubuntu находится по пути /etc/phppgadmin/config.inc.php.

Далее, если вы не знаете пароль супер администратора postgres, то есть возможность ее сменить через терминал

После данной команды сервер запросит ввести пароль и подтвердить еще одним вводом и дальше установится новый пароль, которым мы сможем войти через phpPgAdmin

установить и настроить PostgreSQL на Ubuntu

Изучение

Когда мы говорим о работе с базами данных в любой операционной системе, всегда обсуждаются системы управления базами данных (СУБД). PostgreSQL также является СУБД, которая попадает в категорию систем управления реляционными базами данных, т. Е. Занимается управлением и работой реляционных баз данных. Эта реляционная СУБД позволяет гибко создавать базы данных, управлять ими и устанавливать их в любой известной операционной системе, например Linux, macOS и Windows. Именно поэтому эта СУБД получила большую известность среди многих программистов.

Эта реляционная СУБД является бесплатной и имеет открытый исходный код, что способствует ее широкому использованию в различных отраслях промышленности. Более того, эта СУБД имеет дело с типом транзакций — ACID, т. Е. Она может эффективно выполнять транзакции со свойствами ACID (атомарность, согласованность, изоляция и надежность). Это означает, что если у вас есть данные с этими свойствами и вы хотите создать для них реляционную базу данных, вам обязательно следует рассмотреть возможность использования сервера PostgreSQL.

С момента запуска этой реляционной СУБД в 1996 году она претерпела несколько обновлений, поэтому ее функциональность сравнима с любой из последних систем управления реляционными базами данных. Более того, эта СУБД также обеспечивает усовершенствования функций традиционных систем управления базами данных и полное соответствие с SQL. Эта реляционная СУБД поддерживает широкий спектр собственных типов данных и некоторые типы данных, определяемые пользователем. В дополнение к этому, он также обрабатывает различные версии ваших баз данных, сохраняя при этом их параллелизм чрезвычайно изящным образом.

Концепция наследования также хорошо работает с таблицами, созданными в базах данных этой СУБД. Это означает, что вы можете очень удобно позволить таблице наследовать свойства своей родительской таблицы при использовании сервера PostgreSQL. Помимо этого, эта СУБД также позволяет создавать резервные копии ваших данных в Интернете, предотвращая любые потери данных. Кроме того, он также поддерживает восстановление на определенный момент времени для облегчения доступа к восстановленным данным. К настоящему времени мы достаточно обсудили соответствующие функции сервера PostgreSQL. Теперь самое время поговорить о самом фокусе этой статьи.

Цель этой статьи — научить вас процедуре установки сервера PostgreSQL в дистрибутиве Linux, то есть Ubuntu 20.04. Вы также можете использовать любой другой вариант Linux по вашему выбору, если хотите. Однако описанный ниже метод будет отлично работать с системой Ubuntu 20.04.

Методика начала работы с PostgreSQL в Ubuntu 20.04

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

Шаг № 1: Подготовьте вашу систему к установке PostgreSQL

Перед установкой чего-либо в любом дистрибутиве Linux настоятельно рекомендуется обновить систему. Этой цели можно достичь с помощью следующей команды:

Шаг № 2: Запустите команду установки для PostgreSQL

После того, как вышеупомянутая команда завершит свое выполнение, следующим шагом будет выполнение следующей команды в вашем терминале Ubuntu 20.04:

Эта команда установит PostgreSQL в нашу систему Ubuntu 20.04, что является для нас обязательным, т.е. мы не сможем запустить его, если он не установлен в нашей системе Ubuntu 20.04.

С помощью этой команды вы сможете очень удобно установить PostgreSQL

Шаг № 3: проверьте активный статус PostgreSQL

Нам также необходимо убедиться, что сервер PostgreSQL активен в нашей системе. Для этого мы можем проверить его статус с помощью следующей команды:

Результат, представленный на изображении ниже, подтверждает

Результат, представленный на изображении ниже, подтверждает, что PostgreSQL активен в нашей системе. Однако здесь следует отметить, что этот сервер сейчас не работает. Он запустится только после того, как мы запустим этот сервер. Именно поэтому статус оказался «активен (вышел)», а не «активен (работает)».

Шаг № 4: Запустите PostgreSQL, получив доступ к его серверу

После проверки состояния сервера PostgreSQL в нашей системе Ubuntu 20.04 мы получим доступ к этому серверу, чтобы он мог начать работу, с помощью следующей команды:

Ваш сервер PostgreSQL немедленно начнет работать в вашей системе Ubuntu 20.04, как только эта команда будет выполнена. Вы можете убедиться в этом, взглянув на измененный путь в терминале вашей системы.

Шаг № 5: Войдите в консоль PostgreSQL

Наконец, чтобы поиграть с базами данных, нам нужно войти в консоль PostgreSQL, что можно сделать с помощью команды, показанной ниже:

Вы можете увидеть консоль PostgreSQL на следующем изображении:

Вы можете увидеть консоль PostgreSQL на следующем изображении

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

Дополнительный совет

В качестве дополнительного совета мы хотели бы научить вас, как вернуться к обычному терминалу в Ubuntu 20.04. Для этого вам сначала нужно выйти из консоли PostgreSQL, после чего вам придется выйти из сервера PostgreSQL. Это можно сделать, следуя двум приведенным ниже советам:

Совет № 1: как выйти из консоли PostgreSQL?

Для выхода из консоли сервера PostgreSQL вам необходимо ввести «\ q» в этой консоли и нажать клавишу Enter, как показано на следующем изображении:

Для выхода из консоли сервера PostgreSQL вам необходимо ввести

Как только вы это сделаете, вы выйдете из консоли сервера PostgreSQL.

Совет № 2: Как выйти из сервера PostgreSQL?

Теперь для выхода из сервера PostgreSQL вам необходимо выполнить команду, показанную ниже:

Теперь для выхода из сервера PostgreSQL вам необходимо

Когда вы запустите эту команду, вы успешно выйдете из сервера PostgreSQL.

Заключение

Из этого руководства вы легко поймете, насколько просто запустить PostgreSQL в системе Linux. Мы использовали систему Ubuntu 20.04 для объяснения этого метода. Главное, что вам нужно, — это установленный в вашей системе сервер PostgreSQL. Если вы установили его в своей системе и он находится в активном состоянии, то запуск этого сервера в вашей системе займет всего несколько секунд. Кроме того, в качестве дополнительного совета мы также научили вас, как выйти из консоли сервера PostgreSQL и как выйти из этого сервера.

Запуск программы интерактивного терминала PostgreSQL, называемой psql, которая позволяет в интерактивном режиме вводить, редактировать и выполнять команды SQL. Во время установки postgres в вашей операционной системе он создает «начальную БД» и запускает домен сервера postgres. Обычно initdb создает таблицу с именем «postgres», принадлежащую пользователю «текущий пользователь, вошедший в систему»

В командной строке вашей операционной системы введите следующую команду.

Системы на основе Debian, такие как Ubuntu:
Подключиться / войти как root -

Системы на основе Redhat, такие как Centos / Fedora:
Подключиться / войти как root -

Windows:
В Windows текущий пользователь не имеет значения

Получив доступ к базе данных PostgreSQL, вы можете запускать SQL-запросы и многое другое. Вот некоторые распространенные команды PSQL

  • Чтобы просмотреть справку по командам psql , введите / ?.
  • Чтобы просмотреть справку по командам SQL, введите / h.
  • Чтобы просмотреть информацию о текущем соединении с базой данных, введите / conninfo.
  • Чтобы составить список таблиц базы данных и их соответствующих владельцев, введите / dt.
  • Чтобы получить список всех таблиц, представлений и последовательностей в базе данных, введите / z.
  • Чтобы выйти из программы psql , введите / q.

psql - это основанный на терминале интерфейс PostgreSQL. Это позволяет вводить запросы в интерактивном режиме, отправлять их в PostgreSQL и просматривать результаты запроса.

вариант Описание
-a
--echo-все
Выведите все непустые строки ввода на стандартный вывод, когда они прочитаны. Это эквивалентно установке переменной ECHO для всех.

--no-Align
Переключение в режим невыровненного выхода.
-c команда
--command = команда
Указывает, что psql должен выполнить одну командную строку, команду и затем выйти. Это полезно в сценариях оболочки. Файлы запуска (psqlrc и

Подключение к базе данных PostgreSQL с помощью приложения с графическим интерфейсом pgAdmin

Вы также можете подключиться к базе данных PostgreSQL с помощью приложения pgAdmin GUI. Подключитесь к базе данных по адресу localhost: 5432, используя имя пользователя postgres и предоставленный пароль.

«PostgreSQL

При нажатии на pgAdmin III появится следующий экран:

«PostgreSQL

Теперь дважды щелкните PostgreSQL 9.4 в разделе «Группы серверов». pgAdmin попросит вас ввести пароль. Вы должны предоставить пароль для пользователя postgres для аутентификации.

«PostgreSQL-pgadminIII

В разделе «База данных» на этом разделе сервера найдите нужную базу данных и выполните запросы SQL:

Читайте также: