PostgreSQLインストールと起動【MacOS】Pythonドライバ使用

PostgreSQLは、オープンソース系のリレーショナルデータベース(Relational Database : RDB)です。

このデータベースは仮想環境構築でも使われており、業務仕様にも耐えれるデータベースとして実績が豊富です。
業務実績としては「MySQL」も有名ですが、今回は「PostgreSQL」を「MacOS」へインストールをまとめました。

また、PostgreSQLはBSDライセンスに準拠しており、著作権とライセンスを明記しておけば、再利用及び再配布は自由となっています。

MacOSへ「PostgreSQL」のインストールと起動

MacOSでPostgreSQLをインストールする際は、インストーラーよりも手順が簡単な「Homebrew」を使用してPostgreSQLをインストールします。

まずは事前に「Homebrew」のインストールを実施しましょう。

Homebrewのインストール

「Homebrew」は以下のサイトへアクセスし、表記されている実施コマンドをそのまま「ターミナル」で実行します。

https://brew.sh/index_ja

Macのターミナルを起動し、以下のコマンドを実行しましょう。

/bin/bash -c "$(curl -fsSL ;

うまくインストールができれば、「PostgreSQL」のインストールを実行します。

PostgreSQLインストール

MacOSで「ターミナル」を起動し、「Homebrew」の以下のコマンドを実行し、インストールを実行します。

~ $ brew install postgresql

バージョン指定でインストールをする場合以下のコマンドを実行します。
(以下はバージョン10系を指定)

~ $ brew install postgresql@10

正常にインストールされたことを確認するには以下のコマンドを実行します。
PostgreSQLのバージョンが表示されたことが確認できれば成功です。

~ $ psql --version
psql (PostgreSQL) 12.2
~ $ 

「command not found」エラーが発生した場合の対処法

上記のコマンドでエラーが発生した場合は、PostgreSQLファイルへのパスが通っていないためエラーが発生します。
以下の手順でPostgreSQLのパスを通してあげます。

  1. 以下コマンドで、「.bash_profile」ファイルがホームディレクトリに存在していることを確認します。
  2. ~ $ ls -la ~ | grep profile
    -rw-r--r--   1 kobayashiseigo  staff     188  1 20 01:32 .bash_profile
    
  3. 存在しない場合は以下のコマンドでファイルを作成します。
  4. ~ $ touch ~/.bash_profile
    
  5. 次に、作成したファイルを編集するため以下のコマンドを実行します。
  6. ~ $ vi ~/.bash_profile 
    
  7. 「i」キーで編集モードにし、以下を記述します。
    バージョン指定の場合は「postgresql」の箇所が「postgresql@12」となります。

    以下はバージョン12.2をインストールした場合の記述となります。
    入力が完了した後は、「esc」キーを押して、「:wq」でファイルを保存して抜けます。

  8. export PATH=$PATH:/usr/local/Cellar/postgresql@12/12.2/bin/
    
  9. 最後に以下のコマンドを入力し、パスの有効化します。
  10. ~ $ source ~/.bash_profile 
    

データベースの作成

パスがうまく通れば、次にPostgreSQLを起動します。

  1. 「@」をつけてバージョン指定でインストールした場合は「postgresql@10」と入力します。
  2. ~ $ brew services start postgresql
    ==> Tapping homebrew/services
    Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-services'...
    remote: Enumerating objects: 691, done.
    remote: Total 691 (delta 0), reused 0 (delta 0), pack-reused 691
    Receiving objects: 100% (691/691), 186.95 KiB | 492.00 KiB/s, done.
    Resolving deltas: 100% (273/273), done.
    Tapped 1 command (39 files, 260.5KB).
    ==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)
    
  3. データベース「private_diary」の作成をするために「createdb」コマンドを実行します。
  4. ~ $ createdb private_diary
    
  5. 「psql -l」コマンドでデータベース一覧を確認します。
    上記で作成したデータベース「private_diary」が存在していると作成成功です。
  6. ~ $ psql -l
                                            List of databases
         Name      |     Owner      | Encoding | Collate | Ctype |         Access privileges         
    ---------------+----------------+----------+---------+-------+-----------------------------------
     postgres      | User           | UTF8     | C       | C     | 
     private_diary | User           | UTF8     | C       | C     | 
     template0     | User           | UTF8     | C       | C     | =c/User                +
                   |                |          |         |       | User=CTc/User
     template1     | User           | UTF8     | C       | C     | =c/User                +
                   |                |          |         |       | User=CTc/User
    (4 rows)
    
    ~ $ 
    

ドライバのインストール

今回インストールしたPostgreSQLはDjangoでも使用するので、Pythonから接続する際に最もよく利用されている「psycopg2」をインストールしておきます。

python環境下で以下のコマンドを実行します。

~ $ pip install psycopg2-binary
Collecting psycopg2-binary
  Downloading psycopg2_binary-2.8.4-cp38-cp38-macosx_10_9_x86_64.macosx_10_9_intel.macosx_10_10_intel.macosx_10_10_x86_64.whl (1.5 MB)
     |████████████████████████████████| 1.5 MB 1.6 MB/s 
Installing collected packages: psycopg2-binary
Successfully installed psycopg2-binary-2.8.4
~ $ 

データベースの停止

PostgreSQLを停止するには以下のコマンドを実行します。
こちらも、「@」マークをつけてバージョン指定でインストールした場合は「postgresql」を「postgresql@12」というコマンドで指定しましょう。

~ $ brew services stop postgresql
Stopping `postgresql`... (might take a while)
==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
~ $ 

MacOSに「PostgreSQL」をインストールする手順は以上となります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US

blank
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!