在macOS上安装PostgreSQL

我安装了PostgreSQL在macOS上,使用Homebrew,所以我将其记录下来以作为备忘。

环境

macOS (10.12.1)
PostgreSQL (9.6.1)
Homebrew (1.1.2)

苹果操作系统(10.12.1)
PostgreSQL 数据库(9.6.1)
Homebrew 软件包管理器(1.1.2)

自制酿造的更新

$ brew update
$ brew doctor

安装PostgreSQL

$ brew install postgresql

初始化

$ initdb /usr/local/var/postgres -E utf8

执行后会显示以下消息。
请按照指示,删除 /usr/local/var/postgres,然后重新执行。

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".

据说在使用Homebrew安装PostgreSQL时会在内部执行 initdb,从而导致在 /usr/local/var/postgres 上出现错误。

这次出现了以下警告,但是由于此次是受信任的认证,所以不需要理会。

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

※ 有关trust认证,请参考官方网站。
https://www.postgresql.jp/document/9.6/html/auth-methods.html#auth-trust

启动

$ pg_ctl -D /usr/local/var/postgres -l logfile start

尝试获取数据库列表

$ psql -l
                              List of databases
   Name    | Owner | Encoding |   Collate   |    Ctype    | Access privileges
-----------+-------+----------+-------------+-------------+-------------------
 postgres  | admin | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 |
 template0 | admin | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/admin         +
           |       |          |             |             | admin=CTc/admin
 template1 | admin | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/admin         +
           |       |          |             |             | admin=CTc/admin
(3 rows)

停下来

$ pg_ctl -D /usr/local/var/postgres stop -s -m fast

我会检查一下,确定是否真的停止了。

再次尝试获取之前的数据库列表时发现它已停止。

$ psql -l
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

权限设置

为postgres用户设置超级用户权限。

$ psql -U admin postgres
# ALTER ROLE postgres WITH Superuser;
# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 admin     | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 postgres  | Superuser                                                  | {}

请看以下内容

http://tstomoki.com/programming/posgre_inst 可以在这个链接找到关于在PosgreSQL上安装的教程。
http://qiita.com/_daisuke/items/13996621cf51f835494b 这个链接提供了关于安装PosgreSQL的教程。

广告
将在 10 秒后关闭
bannerAds