前提・実現したいこと
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=#
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/14 14:28
2019/07/14 15:46
2019/07/14 15:50
2019/07/14 16:18
2019/07/14 16:19
2019/07/14 16:29