Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux PostgreSQL createdb抛出致命错误_Linux_Postgresql - Fatal编程技术网

Linux PostgreSQL createdb抛出致命错误

Linux PostgreSQL createdb抛出致命错误,linux,postgresql,Linux,Postgresql,我正在尝试在linux机器上的PostgreSQL上创建db。我使用下面的命令来创建数据库 createdb mydbname 这是以下错误 createdb:无法连接到数据库postgres:致命:数据库 “博士后”不存在 我是PostgreSQL的新手。你能指导我克服这个错误吗?我只想在psql上创建一个DB。su-postgres将用户更改为postgres psql-运行psql终端 postgres#创建数据库somedatabase创建数据库 postgres\c somedatab

我正在尝试在linux机器上的PostgreSQL上创建db。我使用下面的命令来创建数据库

createdb mydbname

这是以下错误

createdb:无法连接到数据库postgres:致命:数据库 “博士后”不存在


我是PostgreSQL的新手。你能指导我克服这个错误吗?我只想在psql上创建一个DB。

su-postgres
将用户更改为postgres
psql
-运行psql终端
postgres#创建数据库somedatabase
创建数据库
postgres\c somedatabase
connecto to database
somedatabase#
您的用户已作为postgres用户连接到该数据库

su - postgres change user to postgres
createdb
createdb somedatabase
psql somedatabase

第一行更改为postgres系统用户。第二行为postgres管理员用户创建一个数据库。第三行创建您试图创建的数据库。第四行作为postgres用户连接到它。

看起来您删除了
postgres
数据库。它是许多管理操作使用的默认值,因此您可能需要重新创建它:

createdb --maintenance-db=template1 -T template0 postgres;
这样做的目的是连接到内置DB
template1
,以便通过复制
template0
来创建DB
postgres

完成后,您的命令:

createdb mydbname;

将正常工作。

这里还有第二个命令
psql
给出如下错误(
psql:FATAL:数据库“postgres”不存在)是否启动了服务器
sudo服务postgresql start
或alikeIt已在运行。甚至我也可以使用其他已经存在的DB.psql-U postgres-d existingdb(将使用用户postgres和with连接到终端),然后运行create database newdb。看来postgres数据库被删除了!!???。我想您没有删除它。运行
psql-U postgres-l
列出所有数据库。您应该有postgres数据库。您使用的是哪个linux发行版?这将给出以下错误
createdb:invalical选项--d请尝试“createdb--help”以获取更多信息
然后我将参数-d更改为-d。之后,它给出了另一个错误,如下面的
createdb:database creation failed:error:syntax error位于字符26处的“TABLESPACE”处或附近
我编辑您的命令,如下面的
createdb-T template1 postgres
表示将
-d
更改为
-d
。那么我的问题就解决了。这是您要执行的命令吗?能否将其更改为
-T
。解决办法很有效。如果你把答案上的
-D
改成
-T
,我可以把它改成绿色。它将对其他人有用。