在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的教程。