sumishige
@sumishige (shigeyuki sumiya)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

PostgreSQLからデータベースが作成できない

解決したいこと

PostgreSQLでデータベースが作成できなく困っています。
PostgreSQLをWindows10にインストールして新規データベースを作成したいのですが、
SQL shell からログインしてcreate tableでデータベースが作成できまず、
応答もありません。
どなたか原因、解決方法を教えて下さい。

発生している問題・エラー

Server [localhost]:
Database [postgres]:
Port [5432]:
Username [postgres]:
Client Encoding [SJIS]:
ユーザ postgres のパスワード:
psql (13.13)
"help"でヘルプを表示します。

postgres=# \l
                                        データベース一覧
   名前    |  所有者  | エンコーディング | 照合順序 | Ctype(変換演算子) |     アクセス権限
-----------+----------+------------------+----------+-------------------+-----------------------
 postgres  | postgres | UTF8             | C        | C                 |
 template0 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
(3 行)

    ★(データベース作成権限を確認)
postgres=# \du
                                             ロール一覧
 ロール名 |                                   属性                                   | 所属グループ
----------+--------------------------------------------------------------------------+--------------
 postgres | スーパユーザ, ロール作成可, DB作成可, レプリケーション可, RLS のバイパス | {}

    ★(データベースtestDBを作成)
postgres=# create database testDB
    ★(レスポンスがない)
postgres-#

    ★(testDBが作成されていない)
postgres-# \l
                                        データベース一覧
   名前    |  所有者  | エンコーディング | 照合順序 | Ctype(変換演算子) |     アクセス権限
-----------+----------+------------------+----------+-------------------+-----------------------
 postgres  | postgres | UTF8             | C        | C                 |
 template0 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
(3 行)


postgres-#

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

自分で試したこと

@tom-sato(Tomoaki Sato)氏の記事「PostgreSQL を Windows にインストールするには」(最終更新日 2021年01月13日投稿日 2020年10月29日)を参考にPostgreSQL(Ver.13.13)をインストールし、環境変数にパスを追加した。
・環境設定に問題がないことを確認した。
・pgAdmin4からcreate databaseによりデータベースが作成することは確認した。
・SQL Shellからcreate databaseによりデータベースが作成されず、応答がない(上記図)

0

2Answer

パラメータ足りないかと思います。pgadminで作成したテーブルのDDLを参考して試したらいかがですか。

-- Database: testDB

-- DROP DATABASE testDB;

CREATE DATABASE test
  WITH OWNER = postgres
       ENCODING = 'UTF8'
       TABLESPACE = pg_default
       LC_COLLATE = 'Japanese_Japan.932'
       LC_CTYPE = 'Japanese_Japan.932'
       CONNECTION LIMIT = -1;
0Like

Comments

  1. @sumishige

    Questioner

    セミコロンを付けてみたのですが下記の様にエラーが出てしまいます。

    postgres=# create dataase testDB;
    ERROR: syntax error at or near "dataase"
    行 1: create dataase testDB;

  2. databaseはただしいです。dataaseは間違いです。

  3. @sumishige

    Questioner

    パラメータとセミコロン加えたらできました。
    最近悩んでいたことが一機に解決できました。皆さんありがとうございました。

    postgres=# CREATE DATABASE testDB
    postgres-# WITH
    postgres-# OWNER = postgres
    postgres-# ENCODING = 'UTF8'
    postgres-# LC_COLLATE = 'C'
    postgres-# LC_CTYPE = 'C'
    postgres-# TABLESPACE = pg_default
    postgres-# CONNECTION LIMIT = -1
    postgres-# IS_TEMPLATE = False;

    CREATE DATABASE  ★(レスポンスがあり)

    postgres=# \l
    データベース一覧
    名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権限
    -----------+----------+------------------+----------+-------------------+-----------------------
    postgres | postgres | UTF8 | C | C |
    template0 | postgres | UTF8 | C | C | =c/postgres +
    | | | | | postgres=CTc/postgres
    template1 | postgres | UTF8 | C | C | =c/postgres +
    | | | | | postgres=CTc/postgres
    testdb | postgres | UTF8 | C | C |
    (4 行)
              ★(testDBできています)

Your answer might help someone💌