10

postgres 拒绝工作。我正在使用 9.2 和一个新手。

我创建了一个数据库。我列出,它不在那里?没有错误!它去哪儿了?它曾经被创造过吗?

postgres-# creatdb test
postgres-# \list
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_PH.UTF-8 | en_PH.UTF-8 | 
 template0 | postgres | UTF8     | en_PH.UTF-8 | en_PH.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_PH.UTF-8 | en_PH.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(3 rows)

postgres-# 



postgres@ubuntu:/home/ubuntu$ psql -h 127.0.0.1 -U postgres -d test
Password for user postgres: 
psql: FATAL:  database "test" does not exist
4

2 回答 2

32

你有两个错误:

  1. createdb操作系统命令,不是 SQL 命令。在 psql 中,您需要使用 SQL 语句,这将是:CREATE DATABASE. 有关详细信息,请参阅手册:http ://www.postgresql.org/docs/current/static/sql-createdatabase.html

  2. 每个 SQL 语句都需要以;. 由于您没有这样做,因此您的语句没有执行,因此您没有收到错误。有关详细信息,请参阅手册:http ://www.postgresql.org/docs/current/static/sql-syntax-lexical.html

postgres=#createdb 测试;
错误:“createdb”处或附近的语法错误
第 1 行:createdb 测试;
        ^
postgres=#创建数据库测试;
创建数据库
postgres=#\列表
                                          数据库列表
   姓名 | 所有者 | 编码 | 整理 | 类型 | 访问权限
------------+----------+----------+---------------- -----+----------+---------- -
 后勤 | 后勤 | UTF8 | German_Germany.1252 | German_Germany.1252 |
 模板0 | 后勤 | UTF8 | German_Germany.1252 | German_Germany.1252 | =c/postgres +
           | | | | | postgres=CTc/postgres
 模板1 | 后勤 | UTF8 | German_Germany.1252 | German_Germany.1252 | postgres=CTc/postgres+
           | | | | | =c/postgres
 测试 | 后勤 | UTF8 | German_Germany.1252 | German_Germany.1252 |
 10 行)


postgres=#
于 2013-09-05T05:54:40.980 回答
1

createdb 是一个 shell 命令而不是 postgres 命令,这就是它不显示任何错误或成功消息的原因。

要从终端创建数据库,您必须这样做。

sudo -u postgres createdb databaseName

要从 postgres 命令创建数据库,您必须一个接一个地运行以下命令

sudo -u postgres psql
CREATE DATABASE testDB;

如果数据库创建成功,那么您将通过“CREATE DATABASE”获得成功消息

在此处输入图像描述

要查看数据库列表,请编写此命令

\l
于 2017-08-05T10:16:16.257 回答