質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

1回答

5421閲覧

PostgreSQLインストール後、開発環境用のユーザーを作成したい

Sayu_totoro

総合スコア10

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2019/07/13 23:16

編集2019/07/14 16:13

前提・実現したいこと

PostgreSQL において、開発環境用のユーザーを別途作成したい。
Railsを勉強するために、参考書にそって環境構築を行っています。

$ psql -V psql (PostgreSQL) 10.9 (Ubuntu 10.9-0ubuntu0.18.04.1) $ sudo service postgresql start * Starting PostgreSQL 10 database server

手順に沿って上記を入力しました。(PostgreSQLのインストールと、起動)参考書では別途開発環境用のユーザーを作成することを推奨していたので、それに従いました。
ちなみに、『Railsの初期設定で利用できるよう、データベースユーザー名をUbuntuのログインユーザーと同じ名前にしておきます』と説明がありました。

$ sudo su postgres -c 'createuser -s {sayuiso}' --おそらく成功しました。(エラーが出なかったため)その後のエラーでUbuntuを閉じてしまったので出力された文章はわかりません

発生している問題・エラーメッセージ

$ psql postgres psql: FATAL: role "sayuiso" does not exist

ユーザーを作成したはずなのに、存在しない??

該当のソースコード

手順を間違えたのだと思い、もう一度、ユーザー作成のコードを入力したところ

$ sudo su postgres -c 'createuser -s {sayuiso}' createuser: creation of new role failed: ERROR: role "{sayuiso}" already exists

あれ、すでに存在してる??どういうことだろう??

下記、sazi様から頂いた回答のとおりにコードを入力。ロール(sayuiso)は存在しないとエラー文が出ます。
そんなはずはと思いロール作成のコードを入力すると、ロール(sayuiso)は存在すると返ってきます。訳が分からないです...。

$ psql -U sayuiso -d postgres psql: FATAL: role "sayuiso" does not exist $ sudo su postgres -c 'createuser -s {sayuiso}' createuser: creation of new role failed: ERROR: role "{sayuiso}" already exists

試したこと

きちんと参考書通りにできているか確かめた。
タイプミスがないか確かめた。

補足情報(FW/ツールのバージョンなど)

Windows10 Linux ubuntu(18.04) PostgreSQL (10.9) 参考書(現場で使える Ruby on Rails 5 速習実践ガイド)
起こったことをそのまま書きましたが、足りない情報がありましたら教えていただければ幸いです。よろしくお願いいたします。

以下は参考書の内容です。ここに書いてあること以外は入力していないです。PostgreSQLとUbuntuのバージョンが参考書と少し違います。

aptを使用してインストールを行います。以下の一連のコマンドを実行してください。

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(1sb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' $ wget --quiet -0 - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - $ sudo apt update $ sudo apt install postgresql

バージョンを出力して、正しくインストールされていることを確認します。

$ psql -V psql (PostgreSQL) 10.5 (Ubuntu 10.5-1.pgdg16.04+1)

Railsから利用できるように、PostgreSQLを起動しておきます。

$ sudo service postgresql start

初期状態ではデータベースのスーパーユーザーとして「postgres」ユーザーが作成されていますが、Ubuntuのログインユーザー「postgres」の権限でしか利用できないほか、Railsの初期のデータベース接続設定を変更しないと利用できないなど、開発には不便です。そのため開発環境用のユーザーを別途作成しましょう。Railsの初期設定で利用できるよう、データベースユーザー名をUbuntuのログインユーザーと同じ名前にしておきます。

$ sudo su postgres -c 'createuser -s {Ubuntuのログインユーザー名}'

次のコマンドでコンソールを立ち上げて、正常に動作していることが確認出来たら、「¥q」を入力して終了します。

$ psql postgres psql (10.5 (Ubuntu 10.5-1.pgdg16.04+1)) Type "help" for help. postgres=#

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

データベース名と異なるユーザー名で接続するなら、明示する必要があります。

CMD

1psql -U sayuiso -d postgres

psql
PostgreSQLへの接続と切断

投稿2019/07/14 04:10

sazi

総合スコア25138

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Sayu_totoro

2019/07/14 14:28

sazi様、回答ありがとうございます。教えていただいたとおりに入力したのですが、追記したようにエラー文が返ってきます。ロールが作成されているのか、されていないのか、正直訳が分からなく困っています。何か解決できるような情報があれば教えてください。よろしくお願いいたします。
sazi

2019/07/14 15:46

そのユーザーにはどのような権限を与えているのでしょう?
sazi

2019/07/14 15:50

ユーザーが'sayuiso'ではなく'{sayuiso}'で作成されているのかもしれませんね
Sayu_totoro

2019/07/14 16:18

参考書の内容を補足情報に掲載しました。参考書に書いてあること以外は余計なことはしていないと思います。権限をあたえているかどうかについては、参考書には権限について書かれていないので、何も設定していないと思います
Sayu_totoro

2019/07/14 16:19

二つ目の回答に関して、こちらのほうで確認してみます。
Sayu_totoro

2019/07/14 16:29

おっしゃる通り、{ユーザー名} でユーザーが作成されていました! 参考書のコードを一字一句、間違えないように入力しましたが {} ←これがいらなかったのですね...。色々調べましたが解決せず、丸一日考え込んでいたので本当に助かりました。 sazi様、この度はありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問