请使用MacPorts在OS X(El Capitan)上安装PostgreSQL 9.4
本文将总结在OS X(El-Capitan)上使用MacPorts安装PostgreSQL 9.4的步骤。本文是之前撰写的英文文章《使用MacPorts在OS X 10.11上安装PostgreSQL 9.4》的日语翻译版本。
使用环境:
-
- ハードウェア: MacBook Pro (Retina, 13-inch, Late 2013)
-
- OS: OS X El-Capitan version 10.11.1
- パッケージ マネージャ: MacPorts version 2.3.4
在这里,假设MacPorts已经安装。如果尚未安装,请先安装,然后再更新MacPorts本身。
主要步骤:
-
- 使用 MacPorts 安装 PostgreSQL
-
- 准备客户端工具
-
- 准备初始数据库
-
- 设置自动启动
- 尝试使用
使用MacPorts安装PostgreSQL。
在这个地方,我们将安装最新版本的PostgreSQL,即9.4.5版本。请执行以下命令以安装MacPorts。
$ sudo port install postgresql94-server
通过这个操作,所有必需的软件包都将安装完毕。此过程可能需要几分钟来完成。
一旦完成后,将会显示一个包含安装后执行步骤的笔记。建议将此部分记录下来或保存起来。
...
---> Configuring postgresql94-server
---> Building postgresql94-server
---> Staging postgresql94-server into destroot
---> Creating launchd control script
###########################################################
# A startup item has been generated that will aid in
# starting postgresql94-server with launchd. It is disabled
# by default. Execute the following command to start it,
# and to cause it to launch at startup:
#
# sudo port load postgresql94-server
###########################################################
---> Installing postgresql94-server @9.4.5_0
---> Activating postgresql94-server @9.4.5_0
To create a database instance, after install do
sudo mkdir -p /opt/local/var/db/postgresql94/defaultdb
sudo chown postgres:postgres /opt/local/var/db/postgresql94/defaultdb
sudo su postgres -c '/opt/local/lib/postgresql94/bin/initdb -D /opt/local/var/db/postgresql94/defaultdb'
---> Cleaning postgresql94-server
---> Updating database of binaries
---> Scanning binaries for linking errors
---> No broken files found.
准备客户端工具
安装PostgreSQL服务器软件包时,客户端工具也会被一同安装。在这里,我们将进行一些配置,以使该工具能够顺利运行。
首先,使用以下命令将可设置的选项显示出来。
$ port select --list postgresql
Available versions for postgresql:
none (active)
postgresql94
在这里,我们可以看到作为客户端的postgresql94的选择。您可以使用以下命令来实际启用它。
$ sudo port select --set postgresql postgresql94
Selecting 'postgresql94' for 'postgresql' succeeded. 'postgresql94' is now active.
然后,再次运行 port select –list,将会得到以下类似的输出。
$ port select --list postgresql
Available versions for postgresql:
none
postgresql94 (active)
最后, 您可以通过以下命令确保客户端工具可以正常运行。
$ which psql
/opt/local/bin/psql
准备初始数据库
在以下步骤中,我们将初始化首选数据库。这里的说明是根据MacPorts提供的步骤,并且也在安装结束时显示的笔记中写明(请参阅)。PostgreSQL网站上也有类似的说明,称为First steps – PostgreSQL,但注意在我们的环境中可能无法完全执行。
首先,创建数据库文件的存放位置(目录)。
$ sudo mkdir -p /opt/local/var/db/postgresql94/defaultdb
接下来,将设置该目录的所有权。在这里,将使用特殊用户 postgres。
$ sudo chown postgres:postgres /opt/local/var/db/postgresql94/defaultdb
最后,使用以下命令实际初始化并创建数据库。
请确保在执行之前,当前所在的目录不是主目录或其他个人目录。如果当前目录没有读取权限,该命令将会失败。在执行之前,请先切换到像 /opt/local/ 这样任何人都可以访问的目录中。
$ cd /opt/local/
$ sudo su postgres -c '/opt/local/lib/postgresql94/bin/initdb -D /opt/local/var/db/postgresql94/defaultdb'
当这个命令成功执行时,将会输出以下内容。
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
...
Success. You can now start the database server using:
/opt/local/lib/postgresql94/bin/postgres -D /opt/local/var/db/postgresql94/defaultdb
or
/opt/local/lib/postgresql94/bin/pg_ctl -D /opt/local/var/db/postgresql94/defaultdb -l logfile start
这里写有数据库的主要信息和手动启动的步骤。要手动启动,可以使用postgres或pg_ctl命令。要在系统启动时自动启动数据库,可以按照以下步骤进行设置。
自动启动的设置
在这里,我们将对系统启动时自动启动数据库的设置进行配置。这里使用的是MacPorts提供的方法,并且在安装完成后的提示中也有详细说明(请参考)。
$ sudo port load postgresql94-server
当完成时,数据库将启动,并且下次系统启动时也会自动启动数据库。
试用一下
安装已完成,现在可以使用以下任意命令访问数据库。这将使用默认用户posgtgres进行连接。
sudo -u postgres psql
或者
psql -U postgres
根据需要,之后将创建用户(角色)、模式或数据库。
另外,默认情况下,从本地计算机访问时不需要输入密码。也不允许从远程访问。若要更改此设置,请根据需要编辑数据库设置文件 /opt/local/var/db/postgresql94/defaultdb/pg_hba.conf。