10
9

More than 5 years have passed since last update.

MacにPostgreSQLをインストールした際で詰まった箇所

Posted at

HomebrewでPostgreSQLをインストールをしようとしたのですが、権限周りなどで詰まったので、備忘録として残しています。
自分がPostgreSQLをインストールする際に参考にしたURLも張っているので、併せて確認して頂ければです。

HomebrewでPostgreSQLをインストール

$ brew install postgresql

==> Downloading https://homebrew.bintray.com/bottles/postgresql-11.1.mojave.bottle.tar.gz
Already downloaded: /Users/suzuki_naoto/Library/Caches/Homebrew/downloads/0c14020ff4817a892c73344b81dbd6f31e0d6e83ca0778de6fe3b4d4ecba7a59--postgresql-11.1.mojave.bottle.tar.gz
==> Pouring postgresql-11.1.mojave.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink include/ecpg_config.h
/usr/local/include is not writable.

You can try again using:
  brew link postgresql
==> /usr/local/Cellar/postgresql/11.1/bin/initdb /usr/local/var/postgres
Last 15 lines from /Users/suzuki_naoto/Library/Logs/Homebrew/postgresql/post_install.01.initdb:
2019-01-03 15:55:57 +0900

/usr/local/Cellar/postgresql/11.1/bin/initdb
/usr/local/var/postgres

The files belonging to this database system will be owned by user "suzuki_naoto".
This user must also own the server process.

initdb: file "/usr/local/share/postgresql/postgres.bki" does not exist
This might mean you have a corrupted installation or identified
the wrong directory with the invocation option -L.
Warning: The post-install step did not complete successfully
You can try again using `brew postinstall postgresql`
==> Caveats
To migrate existing data from a previous major version of PostgreSQL run:
  brew postgresql-upgrade-database

To have launchd start postgresql now and restart at login:
  brew services start postgresql
Or, if you don't want/need a background service you can just run:
  pg_ctl -D /usr/local/var/postgres start
==> Summary
🍺  /usr/local/Cellar/postgresql/11.1: 3,548 files, 40.3MB

Error: The brew link step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink include/ecpg_config.h
/usr/local/include is not writable.
You can try again using:
brew link postgresql

このエラーはシンボリックリンクが作成できないとのこと。
※シンボリックリンクとはOSのファイルシステムの機能の一つで、特定のファイルやディレクトリを指し示す別のファイルを作成し、それを通じて本体を参照できるようにする仕組み。

エラーに記載してあるコマンドを実行

$ brew link postgresql

Linking /usr/local/Cellar/postgresql/11.1...
Error: Could not symlink include/ecpg_config.h
/usr/local/include is not writable.

/usr/local/include is not writableの書き込み権限がないとのこと
調べるとmacOS High Sierra で Ansible 入れようとしたら失敗した。に行き着き下記を実行

$ sudo mkdir /usr/local/include
$ sudo chown -R $(whoami) $(brew --prefix)/*

再び、postgresqlをインストール

$ brew install postgresql

Warning: postgresql 11.1 is already installed, it's just not linked
You can use `brew link postgresql` to link this version.

Warningのコマンドを実行

$ brew link postgresql

Linking /usr/local/Cellar/postgresql/11.1... 392 symlinks created

最初のbrew install postgresqlで実行して出ていた、Warningのコマンドを実行

brew postinstall postgresql

==> Postinstalling postgresql
==> /usr/local/Cellar/postgresql/11.1/bin/initdb /usr/local/var/postgres

postgresのバージョン確認

$ postgres --version
postgres (PostgreSQL) 11.1

DBの初期化
localeをja_JP.UTF-8に指定

$ initdb /usr/local/var/postgres --encoding=UTF-8 --locale=ja_JP.UTF-8

The files belonging to this database system will be owned by user "suzuki_naoto".
This user must also own the server process.

The database cluster will be initialized with locale "ja_JP.UTF-8".
initdb: could not find suitable text search configuration for locale "ja_JP.UTF-8"
The default text search configuration will be set to "simple".

Data page checksums are disabled.

initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".

DBの起動と確認

$ postgres -D /usr/local/var/postgres`
$ psql -l

                                        List of databases
   Name    |    Owner     | Encoding |   Collate   |    Ctype    |       Access privileges
-----------+--------------+----------+-------------+-------------+-------------------------------
 postgres  | suzuki_naoto | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 |
 template0 | suzuki_naoto | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/suzuki_naoto              +
           |              |          |             |             | suzuki_naoto=CTc/suzuki_naoto
 template1 | suzuki_naoto | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/suzuki_naoto              +
           |              |          |             |             | suzuki_naoto=CTc/suzuki_naoto

参考URL

MacにPostgreSQLをインストール
macOS High Sierra で Ansible 入れようとしたら失敗した。
ロケール(国際化と地域化)
PostgreSql コマンドの覚え書き

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9