INODEVLOGスマートフォン用の表示で見るINODEVLOGWEBアプリ開発・事業開発・ビジネスモデル・読書の情報などをお届けしています。PostgreSQLBookmarkShareTweetPocket久しぶりの更新です。体壊してリアル死にかけてましたが、最近徐々に仕事にも復帰し始めました。考えてたこともあるので機会があればまた別途まとめようかなと思います。今回は久々に技術記事が書きたくなったので、リハビリがてらPostgreSQLについてです。DB周りの設定は初心者にとってとっつきづらいイメージがあるかと思います。見ながら設定する必要に迫られるでしょう。そんなときにスムーズに導入できるよう実際の流れとその際に出そうなエラーについてまとめておきます。下記のように設定されているとします。詳細はこのへんを参考にしてもらえれば良いと思うので、最初に簡単な流れだけ記載します。等が実行可能になるはずちなみにPGDATAの環境変数を指定していた場合は、PostgreSQL起動時の-Dオプションを省略可能です。1〜5の手順が終わったら使いやすいようにツール周りも含めてカスタマイズもしていければいいですね。各種エラーメッセージ、及びその解決手順などをまとめていきます。過去にPostgreSQLを使っていた場合下記のようなエラーが出ることがあります。"/usr/local/var/postgres".$PostgreSQLを入れ直して過去のやつはいらないなら全部消して再度実行するのが良いかと。Portがすでに使われていて起動しない場合ポスグレを起動させようとしたら下記のようなエラーが出ました。5432使うプロセスは起動させてないはず...。lsofコマンドを-iオプションで使用して、該当ポートを使用しているプロセスの表示を試みてみる。自分が起動したものではない可能性もあるのでsudoを付けて再度実行してみる。読み取り権限が設定されるファイルに限ります下記が実行結果です。Blogこのへんを見るとどうやらMacのLaunchDaemonに登録されているため勝手に起動しているようです。上記デーモンの自動起動の設定ファイルを確認して、次のコマンドで削除したらプロセスも無事に消えました。-i:5432$過去にPostgreSQLをbrew経由で入れたことがあるので、今回入れ直したのが原因かもしれません。brew経由でポスグレ入れると勝手に設定されるのかな...。startedDB起動のログが出たのでOKですね。-ef等のコマンドでプロセス番号見てkillで落としてあげれば良いでしょう。--trace)$名前解決をローカルIPアドレスで出来るように設定してあげれば良いです。名前解決(リゾルバ)の仕組みを知りたい人は下記を見るといいかも。編集して、見つからないと怒られているdbなどのホスト名を127.0.0.1に加えてあげればOKです。ロール作成」をしていないので実行できずにエラーになってます。現在存在するロールを確認しましょう。見て必要なロールを下記コマンドで作成します。ロールがないというエラー内容からDBが作れなかったというエラーになります。--trace)$これは普通にDB操作してユーザ作って権限を与えてあげます。作ったロールにALTERでスーパーユーザーの権限を付与してあげましょう。Superuser;のSQLを実行します。db:migrateでマイグレーションも実行して万事OK!まとめローカル開発環境(Mac)でPostgreSQLやMySQLを使用するのはとっつきづらい印象がありますが、DBに依存するカラムを使用する場合などもあるので使わざるをえない場合もあります。出来るだけ普段から本番に近い環境を維持したほうがエラーも早期発見できる場合が増えるかもしれません。MacにDBを導入することになったときに、この記事などを参照して焦らず使えるようにしてもらえれば幸いです。はてなブログPro小さい会社の代表をしているコードも書いてるWebエンジニアっぽい人。RubyやVueを書いてることが多いです。最近はElixirに興味津々。Railsなどの技術ネタ・事業アイディア・ビジネスモデルなどの話が主食です。日々の業務などでお役立ちできそうな地味な情報をお届け致します。便利ツール検索スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。