- How to exit from PostgreSQL command line utility: psql
- 9 Answers 9
- quit or exit or \q
- User Experience Enhancements
- Работаем с PostgreSQL через командную строку в Linux
- PostgreSQL Подключение, Пользователи (Роли) и Базы Данных
- PostgreSQL создание новой роли и базы данных
- Включить удаленный PostgreSQL доступ для пользователей
- Полезные команды PostgreSQL
- Выбор shema psql в консоли:
- Sequences
- Как выйти из утилиты командной строки PostgreSQL: psql
- ОТВЕТЫ
- Ответ 1
- Ответ 2
- Ответ 3
- Ответ 4
- Ответ 5
- Ответ 6
- quit или exit или \q
- Улучшения взаимодействия с пользователем
- Ответ 7
- Ответ 8
- Как выйти из утилиты командной строки PostgreSQL: psql
How to exit from PostgreSQL command line utility: psql
Sometimes we need quick and straight forward answer than searching it in the manual to focus on the real problem.In such cases these short questions are really helpful.
The real question is not «are people capable of reading a manual», but «should enterprise software respond to standard exit sequences» like, I don’t know, «exit»? Having to read the manual to quit seems seriously counter-intuitive.
@Kheldar Indeed, it’s just bad user interface design (coupled with arrogance). People are insecure about weird things.
9 Answers 9
Type \q and then press ENTER to quit psql .
UPDATE: 19-OCT-2018
As of PostgreSQL 11, the keywords » quit » and » exit » in the PostgreSQL command-line interface have been included to help make it easier to leave the command-line tool.
This won’t work if you are in single user backend mode ( —single ). Instead use Kaarel’s answer ( Ctrl-D ). In addition to always working in pgsql it’ll work in most your other unix shells (python, mysql, etc). If you always do things the «standard» way in ‘nix your brain will be less cluttered with trivia.
Type \? for help if just «help» doesn’t help. This is a gleaming example of how not to create human computer interaction. Who thought of this great idea of \? for help and \q to quit?
quit() quit exit() exit q q() !q ^C help Alt + Tab google.com Quit PSQL \q
I think veterans of the psql command line usually shorten that to just:
Ctrl + D is what I usually use to exit psql console.
Yep. This also works in bash, sh, ssh, zsh, irb, pry, python, sudo su, node, and more. It is the standard way to exit a shell of any kind.
Not just a shell. Any reasonably sane program which reads from stdin and interprets the empty string as EOF will accept ^D.
This does not work for me, probably because I use the Dvorak keyboard layout on OSX. Neither cmd-D nor cmd-E (where D is on Qwerty) works.
@Kevin you don’t have to interpret the empty string as EOF.. by default sending ctrl+D will make you actually receive EOF from fgetc() (int=-1), and it will close the stdin file stream: any subsequent call to f*read*() will return error and feof(stdin) will return 1. So it’s even easier to recognize it 🙂
- Ctrl + Z — this sends the TSTP signal ( TSTP is short for “terminal stop”)
- Ctrl + \ — this sends the QUIT signal
- Ctrl + D — this sends the EOF character. EOF stands for «end of file». In this concrete case it exits from the psql subprogram, as the shell is waiting for user input. This should not be ‘the way to go’ as it is not working if:
- any other character is entered before — try entering some white spaces and then press Ctrl + D , it’s not going to exit psql.
- if the user input is not required at all
There is no need to «try» anything. The proper command to cleanly exit psql is well documented and is \q
As @hobs clearly states about \q : «This won’t work if you are in single user backend mode (—single). Instead use Kaarel’s answer ( CtrlD )». IMHO using CtrlD is not the way to go either, and I explained why above and offered an alternative.
Thank you! Ctrl+Z was the only command that worked for me — I was connected to a database via tunnel which lost the connection — neither \q nor Ctrl+D worked, but I could Ctrl+Z and then kill the suspended process
You may consider substituting the word ‘try’ with ‘use’ at the top of this answer. It brings in a feeling of ‘not sure’, yet this is a straight-forward and working answer to the question.
quit or exit or \q
User Experience Enhancements
Another feature that fell into this category was the inability to intuitively quit from the PostgreSQL command-line (psql). There has been numerous recorded complaints of users trying to quit with the quit and exit commands, only to learn that the command to do so was \q.
We have heard your frustrations and have now added the ability to quit the command-line using the keywords quit and exit and hope that quitting a PostgreSQL session is now as enjoyable as using PostgreSQL.
yes, i mean backslash was satisfactory and consistent with the other internal semicolonless pgsql commands, and one would do \? or \h to continue learning ‘everything else’ imho
Работаем с PostgreSQL через командную строку в Linux
Для подключения к базе данных PostgreSQL понадобится установленный PostgreSQL клиент:
sudo apt install postgresql-client-
sudo apt install postgresql-client-12
Для установки PostgreSQL сервера:
sudo apt install postgresql
Проверим, можем ли мы подключиться к базе данных PostgreSQL:
sudo -u postgres psql -c "SELECT version();"
Вывод команды должен быть примерно таким:
$ sudo -u postgres psql -c "SELECT version();" version ---------------------------------------------------------------------------------------------------------------------------------------- PostgreSQL 10.10 (Ubuntu 10.10-0ubuntu0.18.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0, 64-bit (1 row)
PostgreSQL Подключение, Пользователи (Роли) и Базы Данных
Логин в только что установленный postgreSQL сервер нужно производить под именем пользователя postgres:
Для подключения к базе данных PostgreSQL можно использовать команду:
Если такая команда не просит ввести пароль пользователя, то можно еще добавить опцию -W.
$ psql -Usrv161924_dom -hpgsql-161924.srv.hoster.ru -dsrv161924_dom -W Password for user srv161924_dom:
После ввода пароля и успешного подключения к базе данных PostgreSQL, можно посылать SQL-запросы и psql-команды.
PostgreSQL создание новой роли и базы данных
Создать новую роль c именем admin (указывайте нужное имя):
sudo su - postgres -c "createuser admin"
Создание новой базы данных:
sudo su - postgres -c "createdb testDb"
Дать права роли на базу данных:
grant all privileges on database testDb to admin;
Включить удаленный PostgreSQL доступ для пользователей
Нам нужно отредактировать файл /etc/postgresql//main/pg_hba.conf, задав опцию md5 вместо peer.
sudo vim /etc/postgresql/12/main/pg_hba.conf
После этого сделать restart PostgreSQL:
sudo service postgresql restart
Полезные команды PostgreSQL
Выйти из клиента PostgreSQL:
Показать список баз данных PostgreSQL:
Показать список пользователей (ролей):
Показать структуру таблицы:
Переименовать базу данных:
ALTER DATABASE db RENAME TO newdb;
Изменить текущую базу данных в PostgreSQL (вы не сможете переименовать или удалить текущую базу данных):
\connect db_name или более короткий alias: \c db_name
Удалить роль (пользователя):
Роль не будет удалена, если у нее есть привелегии — возникнет ошибка ERROR: role cannot be dropped because some objects depend on it .
Нужно удалить привелегии у роли, например если нужно удалить роль admin2, нужно выполнить последовательность комманд с Drop Owned:
db=# REASSIGN OWNED BY admin2 TO postgres; REASSIGN OWNED db=# DROP OWNED BY admin2; DROP OWNED db=# drop role admin2; DROP ROLE
Дать права пользователю/роли на логин ( role is not permitted to log in ):
ALTER ROLE admin2 WITH login;
Выбор shema psql в консоли:
Посмотреть список всех схем:
Подключиться к конкретной схеме:
SET search_path TO schema_name
Sequences
Получить имена всех созданных sequences:
select relname from pg_class where relkind='S';
Получить последнее значение sequence, которые будет присвоено новой вставляемой в таблицу записи:
SELECT last_value FROM order_id_seq;
Как выйти из утилиты командной строки PostgreSQL: psql
Какую команду или короткий ключ можно использовать для выхода из утилиты командной строки PostgreSQL psql ?
ОТВЕТЫ
Ответ 1
Введите \q и нажмите ENTER чтобы выйти из psql .
ОБНОВЛЕНИЕ: 19-ОКТЯБРЯ-2018
По состоянию на PostgreSQL 11, ключевые слова » quit » и » exit » в интерфейсе командной строки PostgreSQL были включены, чтобы сделать его проще оставить инструмент командной строки.
Ответ 2
Моя обычная последовательность клавиш:
quit() quit exit() exit q q() !q ^C help Alt + Tab google.com Quit PSQL \q
Я думаю, что ветераны командной строки psql обычно сокращают это, просто:
Ответ 3
Ctrl + D — это то, что я обычно использую для выхода из консоли psql.
Ответ 4
- Ctrl + Z — это посылает сигнал TSTP ( TSTP является коротким для «остановки терминала» )
- Ctrl + \ — отправляет сигнал QUIT
- Ctrl + D — это отправляет символ EOF . EOF означает «конец файла». В этом конкретном случае он выходит из подпрограммы psql, так как оболочка ждет ввода пользователя. Это не должно быть «способом идти», поскольку оно не работает, если:
- любой другой символ вводится раньше — попробуйте ввести некоторые пробелы, а затем нажмите Ctrl + D , он не выйдет из psql.
- если пользовательский ввод вообще не требуется
Ответ 5
Для командной строки Linux \q + введите
Завершение работы с Ctrl + D также работает
Ответ 6
quit или exit или \q
Улучшения взаимодействия с пользователем
Еще одной особенностью, попавшей в эту категорию, была невозможность интуитивно выйти из командной строки PostgreSQL (psql). Были многочисленные зарегистрированные жалобы пользователей, пытающихся выйти с помощью команд quit и exit, только для того, чтобы узнать, что это была команда \ q.
Мы слышали ваше разочарование и теперь добавили возможность выхода из командной строки, используя ключевые слова quit и exit, и надеемся, что выход из сеанса PostgreSQL теперь так же приятен, как и использование PostgreSQL.
Ответ 7
Я узнал, что могу включить \q в пакетный .sql файл, поэтому я мог бы уйти psql раньше из операции\i.
Ответ 8
Это POSTGRESQL — работает на CentOS7, пожалуйста, обратите внимание, что я вышел из PSQL с \q, тогда я все еще в командной оболочке bash для PostgreSQL, который я снова -bash-4.2$ -bash-4.2$ quit -bash: quit: command not found -bash-4.2$ -bash-4.2$ exit logout There are stopped jobs. -bash-4.2$ logout из системы — выход из системы. вывод терминала ниже —- -bash-4.2$ -bash-4.2$ quit -bash: quit: command not found -bash-4.2$ -bash-4.2$ exit logout There are stopped jobs. -bash-4.2$ logout -bash-4.2$ -bash-4.2$ quit -bash: quit: command not found -bash-4.2$ -bash-4.2$ exit logout There are stopped jobs. -bash-4.2$ logout
Как выйти из утилиты командной строки PostgreSQL: psql
Какую команду или короткий ключ можно использовать для выхода из утилиты командной строки PostgreSQL psql ?
@a_horse_with_no_name: я не в шоке от вопроса, а от количества голосов 🙂 Сравните, например, с тем, Как выйти из редактора Vi одним нажатием клавиши?
Иногда нам нужен быстрый и прямой ответ, а не поискать его в руководстве, чтобы сосредоточиться на реальной проблеме. В таких случаях эти короткие вопросы действительно полезны.
Реальный вопрос не в том, «способны ли люди читать руководство» , а в том, «должно ли корпоративное программное обеспечение реагировать на стандартные последовательности выхода», например, «не знаю», «выйти»? Необходимость прочитать руководство, чтобы бросить курить, кажется очень нелогичным.
@Kheldar Действительно, это просто плохой дизайн пользовательского интерфейса (в сочетании с высокомерием). Люди не уверены в странных вещах.
Отличный пример ужасного удобства использования (в противном случае отличный продукт)! Вот почему развитие иногда так расстраивает .
Спасибо за это. Пробовал выход, выход, пока .. потом \ выход \ выход. В конце концов \ ч за помощь, но \? было то, что я должен был использовать .
@MartijnPieters: я думаю, что \? Разумный ответ на этот ленивый вопрос и подобные. Научите человека ловить рыбу и т.д . И это тот, кого вы удалили.
Другие не ленивые ответы на ленивые вопросы: — «Могу ли я получить ваш номер?» — «Да, конечно, посмотрите в телефонной книге». 😉 Знаю, лучше дать удочку, чем рыбу. Но я думаю, что это не всегда так — не тогда, когда кому-то нужна рыба очень быстро и / или он веган и нуждается в рыбе только один раз для дяди Тома, который посещает его раз в год. Лучший ответ, вероятно, будет дать оба. Таким образом, после прочтения можно было бы узнать, как выйти из psql, и узнать, как проверить, как выйти (или посмотреть другие команды), если он / она с таким удивлением уже не знает об этом (не читал информацию на экране?).
Обычно я расстаюсь с psql, потому что не могу понять, как заставить его ДЕЛАТЬ. Причиной этого было то, что я не понимал, что вы должны добавить; до конца операторов SQL в psql, или они считаются неполными и не выполняются.