前提・実現したいこと
OSS-DBの資格取得に向けてPostgreSQLの勉強を始めたのですが、その際に購入した書籍でPostgreSQLのデータベースクラスタを作成し、サーバーを起動、停止のところまでいけたのですがすべての権限を持たないユーザーの作成というところでつまずいています。
全ての権限を持たないユーザーの作成中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
createuser: エラー: "localhost" (::1)、ポート 5432でのサーバーへの接続に失敗しました: FATAL: password authentication failed for user "tanig"
該当のソースコード
pg_ctl start 完了 サーバー起動完了 createuser --interactive testuser 新しいロールをスーパーユーザーにしますか? (y/n)n 新しいロールに対してデータベースを作成する権限を与えますか? (y/n)n 新しいロールに対して別のロールを作成する権限を与えますか? (y/n)n パスワード: パスワード: createuser: エラー: "localhost" (::1)、ポート 5432でのサーバーへの接続に失敗しました: FATAL: password authentication failed for user "name"
試したこと
pg_ctl startでサーバーは起動できています。 pg_ctl stopでサーバーの停止も問題なくできます。 psql -U postgresとすると psql (14.1) postgres=# \du ロール名 | 属性 | 所属グループ ----------+------------------------------------------------------------------------------+-------------- postgres | スーパーユーザー, ロール作成可, DB作成可, レプリケーション可, RLS のバイパス | {}
補足情報(FW/ツールのバージョンなど)
postgresSQL14.1
データベースクラスタは、
initdb -E UTF8 --no-local -U postgres -D /usr/local/pgsql/14/data
というふうに作成しました。
作成した後は、
成功しました。以下のようにしてデータベースサーバーを起動することができます。 pg_ctl -D /usr/local/pgsql/14/data -l ログファイル start
というメッセージが表示されました。
DB導入したOSは何でしょうか。
修正依頼ありがとうございます。
Windws11 proです。
ん、ということは、Windows内に /usr/local/pgsql/14/data のようなディレクトリを作っているということですか?
各コマンドがそのまま実行しているということは、パスもきちんと通して?
はい。ディレクトリを作成しPATHも通しています。
Windows よく分かりません (WSL とかお使いでしょうか?) が、psql -U postgres できるなら createuser -U postgres --interactive testuser でいけるのでは…。
Windows 11ならWSL2+Ubuntu-20.04など導入した上でトレーニングした方が、Windows固有の事象に悩まされずに済みそうですが。Windows 11へのサインインしているユーザーは、Administrator権限持ちユーザーでしょうか。
hoshi-takanoriさん返信遅くなり申し訳ないです。教えていただいたコマンドを入力すると成功しました。
ありがとうございます。WSLというのを調べたのですがまだ、導入していなかったので調べてから導入してみようと思います!
php-gresさん返信遅くなり申し訳ないです。windows11にサインインしているユーザーにはAdministrator権限がついていました。WSL2+ubuntuもまだよくわかってないのですが調べながら導入していこうと思います。
WSLはWindows Subsystem for Linuxのことで、Windows上でLinuxを動かすための仕組みです。UbuntuはLinuxにおけるひとつのディストリビューションです。
Windowsそのものでは /usr/local/pgsql/14/data ではなく、12の例だと「C:\Program Files\PostgreSQL\12\data」だったりします。14の例はわかりません。
ディレクトリの区切り文字が違う以外にもいろいろな差があるため、テキスト通りにならないかもしれません。
ちなみに、Ubuntu-20.04上のPostgreSQL 12でのデータディレクトリは、/var/lib/postgresql/12/main/ だったりします。(環境変数で変更したりできますが。)
回答1件
あなたの回答
tips
プレビュー