Booya! Booya!

毎週末ブログ更新を目標しています。

PostgreSQLをインストールする(macOS)

f:id:natuko_selfish20200223:20200314115629j:plain

PostgreSQLポストグレスキューエル)は、オープンソース系のリレーショナルデータベースです。
元々はカリフォルニア大学バークレー校で開発されたPOSTGRESから派生したデータベースマネジメントシステム(DBMS)です。
略称としてポスグレなどとも呼ばれます。

  【目次】

1. PostgreSQLの特徴

PostgreSQLは、業務使用にも耐えることができるデータベースで実績も豊富です。
以下のような特徴を持っています。

  • 標準SQLへの準拠(独自のSQL拡張が少ない)
  • マルチバイト対応機能(日本語対応)
  • 並列実行性能を高めるための工夫がされている
  • 少ないリソースでも稼動する(高スペックPC出なくても動かせる)

DB-Engines*1のサイトでは、PostgreSQLは4番目に人気のあるDBとなっています。

f:id:natuko_selfish20200223:20200321202339p:plain

f:id:natuko_selfish20200223:20200321204422p:plain

https://db-engines.com/en/ranking_trend/system/PostgreSQL


db-engines.com

オープンソースRDBには他にも「MySQL」がありますが、機能面での優劣はあまりありません。
ただし、ライセンスの扱いには大きな違いがあります。
PostgreSQLはライセンス表記すれば、無料で書面による同意なしに使用、コピー、変更、および配布することができます。
一方、「MySQL」はGPL(無料)と商用(有料)のデュアルライセンスとなっています。

Portions Copyright © 1996-2020, The PostgreSQL Global Development Group
Portions Copyright © 1994, The Regents of the University of California

www.postgresql.org

2. インストール方法について

PostgreSQLのインストール方法は、以下の4つがあります。

Postgres.app
Postgres.appは、インストーラーを必要とせずにメニューバーで実行されるシンプルなネイティブmacOSアプリです。
アプリを開くと、PostgreSQLサーバーが準備され、新しい接続を待機しています。アプリを閉じると、サーバーがシャットダウンします。

Fink
PostgreSQLパッケージは、Fink ProjectからmacOS用に入手できます 。
パッケージのインストール方法については、Finkのドキュメントをご覧ください。
PostgreSQLパッケージ のリストは 、Fink Webサイトのパッケージ検索ツールを使用して見つけることができます。

MacPorts
PostgreSQLパッケージは、MacPorts ProjectからmacOS用にも入手できます 。
ポートのインストール方法については、MacPortsのドキュメントを参照してください。
PostgreSQLパッケージ のリストは 、MacPorts Webサイトのportfiles検索ツールを使用して見つけることができます。

Homebrew*2
PostgreSQLは、Homebrewを使用してmacOSにインストールすることもできます。パッケージのインストール方法については、Homebrewのドキュメントを参照してください。
PostgreSQLパッケージの リストは、Braumeister検索ツールを使用して見つけることができます。

www.postgresql.org

 

今回は、Homebrewを使用して、PostgreSQLをインストールします。
Homebrewは事前にインストールしてください。 

natuko-selfish20200223.hateblo.jp

3. PostgreSQLをインストールする

⑴ターミナルを起動します。

⑵「brew」コマンドを使用してインストールします。

▼バージョンを指定してインストール
$brew install postgresql@10*3

▼最新バージョンをインストール
$brew install postgresql

f:id:natuko_selfish20200223:20200329163706p:plain⑶以下のように表示されると、PostgreSQLのインストールは完了です。

If you need to have postgresql@10 first in your PATH run
(訳:PATHで最初にpostgresql @ 10を使用する必要がある場合は、次のコマンドを実行します。):
echo 'export PATH="/usr/local/opt/postgresql@10/bin:$PATH"' >> ~/.bash_profile

 

For compilers to find postgresql@10 you may need to set
(訳:コンパイラpostgresql @ 10を見つけるには、次の設定が必要になる場合があります。):
export LDFLAGS="-L/usr/local/opt/postgresql@10/lib"
export CPPFLAGS="-I/usr/local/opt/postgresql@10/include"

 

To have launchd start postgresql@10 now and restart at login
(訳:launchdで今すぐpostgresql @ 10を起動し、ログイン時に再起動するには):
brew services start postgresql@10

 

Or, if you don't want/need a background service you can just run
(訳:または、バックグラウンドサービスが必要ない場合は、次のように実行できます。):
pg_ctl -D /usr/local/var/postgresql@10 start

⑷「.bash_profile」にPostgreSQLのパスを登録します。
 ※この設定をしておかないと、ターミナルで「psql」コマンドが認識されない場合があります。

$ echo 'export PATH="/usr/local/opt/postgresql@10/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile

f:id:natuko_selfish20200223:20200329182757p:plain

⑸「.bash_profile」に手順⑷で登録したパスが記録されていることを確認します。
 「open ~/.bash_profile」と入力し、Enterキーを押下します。

f:id:natuko_selfish20200223:20200329201856p:plain

⑹コマンドを実行するとテキストエディタが開きます。
 PostgreSQLの「bin」フォルダのパスが記録されていれば問題ありません。

f:id:natuko_selfish20200223:20200329200830p:plain

続けて、PostgreSQLが正常にインストールされていることを確認します。

4. インストール後の確認をする

⑴「psql --help」と入力し、Enterキーを押下します。
 PostgreSQLのコマンドの説明が表示されます。

Usage:
 psql [OPTION]... [DBNAME [USERNAME]]

General options:
 -c, --command=COMMAND run only single command (SQL or internal) and exit
 -d, --dbname=DBNAME database name to connect to (default: "chie")
 -f, --file=FILENAME execute commands from file, then exit
 -l, --list list available databases, then exit
 -v, --set=,
   --variable=NAME=VALUE
    set psql variable NAME to VALUE
    (e.g., -v ON_ERROR_STOP=1)
 -V, --version output version information, then exit
 -X, --no-psqlrc do not read startup file (~/.psqlrc)
 -1 ("one"), --single-transaction
    execute as a single transaction (if non-interactive)
 -?, --help[=options] show this help, then exit
   --help=commands list backslash commands, then exit
   --help=variables list special variables, then exit

Input and output options:
 -a, --echo-all echo all input from script
 -b, --echo-errors echo failed commands
 -e, --echo-queries echo commands sent to server
 -E, --echo-hidden display queries that internal commands generate
 -L, --log-file=FILENAME send session log to file
 -n, --no-readline disable enhanced command line editing (readline)
 -o, --output=FILENAME send query results to file (or |pipe)
 -q, --quiet run quietly (no messages, only query output)
 -s, --single-step single-step mode (confirm each query)
 -S, --single-line single-line mode (end of line terminates SQL command)

Output format options:
 -A, --no-align unaligned table output mode
 -F, --field-separator=STRING
    field separator for unaligned output (default: "|")
 -H, --html HTML table output mode
 -P, --pset=VAR[=ARG] set printing option VAR to ARG (see \pset command)
 -R, --record-separator=STRING
    record separator for unaligned output (default: newline)
 -t, --tuples-only print rows only
 -T, --table-attr=TEXT set HTML table tag attributes (e.g., width, border)
 -x, --expanded turn on expanded table output
 -z, --field-separator-zero
    set field separator for unaligned output to zero byte
 -0, --record-separator-zero
    set record separator for unaligned output to zero byte

Connection options:
 -h, --host=HOSTNAME database server host or socket directory (default: "local socket")
 -p, --port=PORT database server port (default: "5432")
 -U, --username=USERNAME database user name (default: "chie")
 -w, --no-password never prompt for password
 -W, --password force password prompt (should happen automatically)

 

For more information, type "\?" (for internal commands) or "\help" (for SQL
commands) from within psql, or consult the psql section in the PostgreSQL
documentation.
(訳:詳細についてはpsql内から、"\?" (内部コマンドの場合)または "\ help"(SQLコマンドの場合)と入力してください。またはPostgreSQLpsqlセクションを参照してください。)

f:id:natuko_selfish20200223:20200329175835p:plain

⑵「psql --version」と入力してEnterキーを入力します。
 バージョンが表示されます。

f:id:natuko_selfish20200223:20200329181216p:plain

以上でPostgreSQLのインストールと確認作業は完了です。

6. PostgreSQLを起動する

⑴「brew services start postgresql@10」と入力してEnterキーを入力します。

 $ brew services start postgresql@10
==> Successfully started `postgresql@10` (label: homebrew.mxcl.postgresql@10)
(訳:`postgresql @ 10`を正常に開始しました)

f:id:natuko_selfish20200223:20200329202120p:plain

以上でPostgreSQLの起動は完了です。

7. PostgreSQLを停止する

⑴「brew services stop postgresql」と入力してEnterキーを入力します。

$ brew services stop postgresql@10
Stopping `postgresql@10`... (might take a while)
==> Successfully stopped `postgresql@10` (label: homebrew.mxcl.postgresql@10)
(訳:「postgresql @ 10」を正常に停止しました)

f:id:natuko_selfish20200223:20200329202712p:plain

 以上でPostgreSQLの停止は完了です。

8. おまけ MySQLのライセンスについて

利用者が利用用途に応じて無料の「GPLライセンス(GNU General Public License)」か、有料の「商用ライセンス」のいずれかを選択する「デュアルライセンスモデル」となっています。
本ページでは詳しくは書きませんが、以下のサイト様に詳しく書かれていました。

openstandia.jp

 

ch.nicovideo.jp

 

Python実践入門 ── 言語の力を引き出し、開発効率を高める (WEB+DB PRESS plusシリーズ)
 
動かして学ぶ! Python Django開発入門 (NEXT ONE)

動かして学ぶ! Python Django開発入門 (NEXT ONE)

  • 作者:大高 隆
  • 発売日: 2019/12/13
  • メディア: 単行本(ソフトカバー)
 

  

ブログランキング・にほんブログ村へ にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村

*1:リレーショナルおよびNoSQLデータベース管理システムの知識ベースのサイト。DBが300以上種類があるとは知りませんでした。

*2:macOS用のパッケージ管理システム。Homebrewを使うことで、ターミナル上でソフトウェアやライブラリを簡単にインストールすることができる。

*3:以降の「@10」は、実際にインストールしたバージョンに読み替えてください。