homebrew安装postgresql数据库 (今天废了老半天才把MacPort卸载掉,还是homebrew好用啊。。。)
1. 首先确保 mac 已经安装好了 homebrew(网上好多教程是用macport安装的,但是用对多对用户都了解macport会给你乱安装很多库文件,整的我心爱对电脑很乱,所以后来就用homebrew部署软件了)
2. 先用Homebrew 搜索下postgres的源:brew search postgres,后来出来很多关于postgresql的安装包名"postgresql"。
3.找一个安装:brew install postgresql
3. 默认安装在了 /usr/local/Cellar/ 下。。。
按照步骤来进行初始化postgres 数据库
4. 如果你想卸载:
brew uninstall postgresql
开始初始化配置:
sudo mkdir   /opt/local/var/db/postgresql/defaultdb #创建任意文件夹做数据库目录
sudo su postgres  #使用Postgres数据库的超级管理员登陆目录
./initdb -D /opt/local/var/db/postgresql/defaultdb  #初始化数据库目录文件
./pg_ctl  start  -c  -D /opt/local/var/db/postgresql/defaultdb -l logfile   
 这样数据库开启了。。。。
./psql  postgres    #使用超级默认用户postgres登录 
显示:postgres=#     说明你已经使用postgres超级用户登陆默认数据库postgres了。
./psql -U postgres –h localhost -d  database
这里-U postgres表示作为postgres用户连接服务器,-h localhost表示连接运行在本地主机上的数据库服务器,-d 表示登录相关数据库,如果没有指定用户名,PostgreSQL将认为使用登录主机的用户名。如果省略了用户名和数据库名,表明以操作系统的身份登录到数据库服务器,此时要求在PostgreSQL服务器中有一个与操作系统同名的登录用户和数据库。 使用psql --help可以显示psql的所有命令选项。其中,最重要的选项包括,-U选项允许指定与登录到操作系统用户名不同的用户名登录到数据库。-d选项指定连接的数据库。-h选项指定连接的主机名。-p选项用来指定数据库服务器的端口号。 
提示符“postgres=#”表示连接到名为“postgres”的数据库,该数据库是默认数据库。“#”表示是作为数据库超级用户连接的。“postgres”是默认的超级用户。 psql客户程序具有很多特征,它使我们对PostgreSQL的使用变得很容易。除了可以使用PostgreSQL命令?SELECT, INSERT, UPDATE, CREATE TABLE等,psql还提供了许多内部命令,这些命令称为元命令?meta-command?。PostgreSQL命令被发送到服务器?而元命令由psql自身处理。元命令都是由反斜线?\?开头?后跟一个或多个字母表示的命令?有些命令还可以带参数。表1.2给出了一些常用的元命令。 与SQL命令不同?元命令不需要使用分号结束?直接按回车即可。
创建数据库用户:(注:下文中“postgres=#”表示当前postgres数据库的哪个用户登录,postgres=#表示超级用户登录)
     只有数据库管理员才能创建用户。首先以超级用户身份登录到PostgreSQL?然后使用下面的SQL语句创建一个名为bookstore的数据库用户? postgres=# CREATE USER msf_user;postgres-# LOGIN;postgres-# CREATEDB;postgres-#  encrypted PASSWORD 'msf_password'; USER(此为反馈结果)。要结束SQL语句?应该输入分号';'然后按回车。该语句中?LOGIN表示该用户是登录用户?CREATEDB 表示该用户具有创建数据库对象的权限?PASSWORD指定用户的口令?它使用单引号定界。使用“\du”元命令可以显示用户的状态。
创建bookstore数据库:
     下面的SQL语句创建一个名为msfdb的数据库?该数据库属于msf_user用户。 postgres=# CREATE DATABASE msfdb;postgres-# OWNER TO msf_user; OWNER msf_user短语指定数据库的所有者?owner??对象的所有者具有在该对象上所有的操作权限。 使用“\l+”元命令?可以查看数据库是否创建成功。 
创建数据库对象:
     超级用户postgres可以为其他用户创建数据库对象?但数据库对象一般由数据库所有者创建。如果要以用户msf_user的身份登录到msfdb数据库?请先退出psql?然后使用msf_user 用户名连接到msfdb数据库? C:\PostreSQL\8.3\bin> ./psql  –U msf_user –d msfdb 该命令以msf_user 用户身份连接到msfdb数据库。接下来需要输入用户口令?最后出现的提示符如下? msfdb=> 在该提示符下就可以使用SQL语句创建数据库对象?并且这些对象将存于msfdb数据库的public模式中。