Я работаю с новой установкой postgresql с суперпользователем postgres. Вы вошли через:
sudo -u postgres psql
postgres=# createdb database
postgres-# \list
List of databases
Name | Owner | Encoding | Collation | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 |
template0 | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres
: postgres=CTc/postgres
template1 | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres
: postgres=CTc/postgres
Ошибок нет, но таблица не создается. Любые идеи?
postgresql
psql
Дэмиен Рош
источник
источник
Ответы:
createdb
это утилита командной строки, которую можно запускать из bash, а не из psql. Чтобы создать базу данных из psql , используйте такуюcreate database
инструкцию:Примечание: всегда завершайте операторы SQL с помощью
;
источник
;
Поздно к вечеринке, но принятый ответ не объясняет, почему не отображается ошибка. И поскольку новички в Postgres часто сталкиваются с этим, я хотел добавить это.
TL / TR: всегда заканчивайте свои операторы SQL с
;
Поскольку
createdb database
не заканчивается;
psql
считает заявление не закончен и ожидает ввод. Об этом свидетельствует изменение подсказки сpostgres=#
наpostgres-#
. Чрезвычайно тонкое изменение, которое я хотелpsql
бы сделать по-другому (более «заметным»).При вводе метакоманды
\list
«текущий» оператор SQL «прерывается» без его выполнения.Если
createdb
бы был закончен;
на, вывод был бы следующим:Ясно показывая, что что-то не так.
источник
createdb
она недействительна. Но затем повторение той же команды с точкой с запятойcreate database
вместо точкиcreatedb
с запятой работает отлично.Я был в этой ситуации не так давно. В случае, если кто-то другой испытает это, учитывая, что командная
postgres-#
строка показывает, что вы можете выполнить ожидающую команду createdb, просто набрав;
и клавишу возврата.источник
Создать новую базу данных в PostgreSQL очень просто, выполните эту команду в Linux (пример CentOS 7):
источник
С помощью узлового терминала мне пришлось запустить:
[введите ваш пароль]
затем ...
Что сбивает с толку, так это то, что я вводил эти же команды раньше, и это не сработало. Только после выхода и повторного входа я смог использовать эту стандартную команду из документации: https://www.postgresql.org/docs/10/tutorial-createdb.html
источник