我正在使用'postgres'超级用户进行全新的postgresql安装。登录:
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
没有错误,但是没有创建表。有什么想法吗?
答案 0 :(得分:153)
createdb
是一个命令行实用程序,您可以从 bash 而不是从psql运行。
要从 psql 创建数据库,请使用create database
语句,如下所示:
create database [databasename];
注意:请务必使用;
答案 1 :(得分:55)
晚会,但接受的答案并不能解释为什么没有显示错误。由于这是Postgres新成员经常偶然发现的事情,我想补充一点。
TL / TR:始终使用;
因为createdb database
未以;
psql
结尾,认为该语句未完成并等待更多输入。提示从postgres=#
更改为postgres-#
即表示这一点。我希望psql
做出一个非常微妙的变化会做出不同的改变(更“突出”)。
通过输入元命令\list
,“当前”SQL语句被“中止”而不执行它。
如果createdb
以;
结束,则输出将为:
postgres=> createdb foobar; ERROR: syntax error at or near "createdb" LINE 1: createdb foobar; ^ postgres=>
清楚地表明出现了问题。
答案 2 :(得分:0)
不久前我处于这种情况。万一其他人遇到这种情况,考虑到命令提示符显示postgres-#
,您只需键入;
和返回键即可执行挂起的createdb命令。
答案 3 :(得分:0)
在PostgreSQL中创建新数据库非常简单,请在Linux上执行此命令(以CentOS 7为例):
sudo -u postgres psql -c "create database MyDb;"
答案 4 :(得分:0)
使用节点终端,我必须运行:
psql -U postgres
[输入密码]
然后...
CREATE DATABASE dbadmin;
令人困惑的是,我之前输入了相同的命令,但是没有用。只有注销并重新登录后,我才能使用文档中的以下标准命令:https://www.postgresql.org/docs/10/tutorial-createdb.html