Как выйти из postgresql ubuntu
Какую команду или короткий ключ можно использовать для выхода из утилиты командной строки PostgreSQL psql ?
@a_horse_with_no_name: я не в шоке от вопроса, а от количества голосов :) Сравните, например, с тем, Как выйти из редактора Vi одним нажатием клавиши?
Иногда нам нужен быстрый и прямой ответ, а не поискать его в руководстве, чтобы сосредоточиться на реальной проблеме. В таких случаях эти короткие вопросы действительно полезны.
Реальный вопрос не в том, «способны ли люди читать руководство» , а в том, «должно ли корпоративное программное обеспечение реагировать на стандартные последовательности выхода», например, «не знаю», «выйти»? Необходимость прочитать руководство, чтобы бросить курить, кажется очень нелогичным.
@Kheldar Действительно, это просто плохой дизайн пользовательского интерфейса (в сочетании с высокомерием). Люди не уверены в странных вещах.
что еще более важно, этот пост стал первым хитом, когда я Google "exit psql"
Отличный пример ужасного удобства использования (в противном случае отличный продукт)! Вот почему развитие иногда так расстраивает .
Спасибо за это. Пробовал выход, выход, пока .. потом \ выход \ выход. В конце концов \ ч за помощь, но \? было то, что я должен был использовать .
@MartijnPieters: я думаю, что \? Разумный ответ на этот ленивый вопрос и подобные. Научите человека ловить рыбу и т.д . И это тот, кого вы удалили.
Другие не ленивые ответы на ленивые вопросы: - «Могу ли я получить ваш номер?» - «Да, конечно, посмотрите в телефонной книге». ;) Знаю, лучше дать удочку, чем рыбу. Но я думаю, что это не всегда так - не тогда, когда кому-то нужна рыба очень быстро и / или он веган и нуждается в рыбе только один раз для дяди Тома, который посещает его раз в год. Лучший ответ, вероятно, будет дать оба. Таким образом, после прочтения можно было бы узнать, как выйти из psql, и узнать, как проверить, как выйти (или посмотреть другие команды), если он / она с таким удивлением уже не знает об этом (не читал информацию на экране?).
Обычно я расстаюсь с psql, потому что не могу понять, как заставить его ДЕЛАТЬ. Причиной этого было то, что я не понимал, что вы должны добавить; до конца операторов SQL в psql, или они считаются неполными и не выполняются.
Для подключения к базе данных PostgreSQL понадобится установленный PostgreSQL клиент:
Для установки PostgreSQL сервера:
Проверим, можем ли мы подключиться к базе данных PostgreSQL:
Вывод команды должен быть примерно таким:
PostgreSQL Подключение, Пользователи (Роли) и Базы Данных
Логин в только что установленный postgreSQL сервер нужно производить под именем пользователя postgres:
Для подключения к базе данных PostgreSQL можно использовать команду:
Если такая команда не просит ввести пароль пользователя, то можно еще добавить опцию -W.
После ввода пароля и успешного подключения к базе данных PostgreSQL, можно посылать SQL-запросы и psql-команды.
PostgreSQL создание новой роли и базы данных
Создать новую роль c именем admin (указывайте нужное имя):
Создание новой базы данных:
Дать права роли на базу данных:
Включить удаленный PostgreSQL доступ для пользователей
Нам нужно отредактировать файл /etc/postgresql/<VERSION>/main/pg_hba.conf, задав опцию md5 вместо peer.
<VERSION> может быть 10, 11, 12 и т.д.
После этого сделать restart PostgreSQL:
Полезные команды PostgreSQL
Выйти из клиента PostgreSQL:
\q
Показать список баз данных PostgreSQL:
\l
Показать список таблиц:
\dt
Показать список пользователей (ролей):
\du
Показать структуру таблицы:
Переименовать базу данных:
Удалить базу данных:
Изменить текущую базу данных в PostgreSQL (вы не сможете переименовать или удалить текущую базу данных):
\connect db_name или более короткий alias: \c db_name
Удалить роль (пользователя):
Роль не будет удалена, если у нее есть привелегии - возникнет ошибка ERROR: role cannot be dropped because some objects depend on it .
Нужно удалить привелегии у роли, например если нужно удалить роль admin2, нужно выполнить последовательность комманд с Drop Owned:
Дать права пользователю/роли на логин ( role is not permitted to log in ):
Выбор shema psql в консоли:
Посмотреть список всех схем:
Подключиться к конкретной схеме:
Sequences
Получить имена всех созданных sequences:
Получить последнее значение sequence, которые будет присвоено новой вставляемой в таблицу записи:
Теперь я хочу полностью удалить Postgres со своей машины, как я могу это сделать, я не хочу убивать процесс при каждой загрузке. Я просто хочу удалить Postgres.
Что такое командная строка?
Самый простой способ сделать это - открыть терминал и набрать:
Это также побудит вас удалить то программное обеспечение, которое зависит от Postgres, что в данном случае, по-видимому, вы хотели бы сделать.
Я лично не запускаю 9.10 или Postgres, поэтому вполне возможно, что Postgres устанавливает себя в несколько частей. В таком случае просто:
Вы получите список тех пакетов, которые установил Postgres. Затем просто используйте ту же команду «apt-get --purge remove . », но вместо просто postgresql, введите имя каждого пакета, разделенное пробелами, например:
Конечно, это зависит от списка установленных пакетов.
Я запускаю командную строку -> sudo apt-get --purge remove postgresql и похоже, что он был удален из моей ubuntu .. Я жду обновления, всегда при обновлении postgres показывает ошибку. Спасибо, в любом случае. Я думал, что это было правильно. Но сегодня я снова получил то же самое предупреждение, система аварийного завершения, что-то пытается обновить postgres, но этого не происходит, тогда отчет о аварийном завершении показал себя .. некоторые предложения? еще раз спасибо.Шаги, которые работали на меня, Ubuntu 8.04.2 чтобы удалить postgres 8.3
Список всех пакетов, связанных с Postgres
Удалить все вышеперечисленное
Удалите следующие папки
Удалить пользователя postgres :
Спасибо! но я больше не использую Ubuntu. Сейчас я нахожусь на опенсе и сентос. В любом случае, спасибо, если у меня снова возникнут проблемы с postgres, ваш ответ будет полезен. Шаг 3 можно объединить в одну строку при использовании оболочки bash sudo rm -rf ,etc>/postgresql/ +1 за шаг 3 здесь. Это было ключевым для меня. Несколько раз пытался удалить пакеты, но в / var / lib / postgresql и / etc / postgresql осталась куча, которая вызывала последующие операции после переустановки.Одна команда, чтобы полностью удалить postgresql в терминале sudo apt-get --purge remove postgresql\* . Обратите внимание, что эта команда удалит postgresql и все его компоненты.
Ответ выше работал для меня - Это не удаляло все, как говорится --purgeСпасибо Code Friendly , и я хочу поделиться тем, как я решил свою проблему.
Когда я обновлялся postgresql из приложения Synaptic, была установлена версия postgresql 10. Поэтому на моем компьютере с Debian были установлены две версии postgresql (10 и 9.6). Postgresql 9.6 слушаю по порту 5432 . Postgresql 10 прослушивание порта 5433 вместо 5432.
Я удаляю версию 9.6 postgresql из приложения Synaptic, но проблема сохраняется (postgresql 9.6 больше не отображается в списке установленного программного обеспечения synaptic);
Но, выполнив следующую команду, мы увидим, что версия postgresql 9.6 не была полностью удалена:
С помощью следующей команды postgresql-9.6 полностью удален:
root@kali:
Затем я отредактировал файл /etc/postgresql/10/main/postgresql.conf , изменил номер порта на 5432 и проблема решена.
Я обнаружил, что причина была в том, что на моем компьютере с Debian установлены две (2) версии Ruby, версии (2.2 и 2.3).
То же самое, я удаляю версию ruby 2.2 из приложения synaptic, и проблема решена, metasploit запускается без проблем.
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);
Читайте также: