homebrew安装postgresql数据库 (今天废了老半天才把MacPort卸载掉,还是homebrew好用啊。。。)

我是在数据库初始化那个地方卡住了,主要还是误解了Postgres数据库默认用户的问题,刚安装完,他没有默认超级用户,当你初始化后,默认用户才被创建,默认用户是初始化文件夹所属于的用户)

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 #创建任意文件夹做数据库目录

ls -l  显示此文件属于root

chown  当前用户  /opt/local/var/db/postgresql/defaultdb   将此目录隶属于当前用户

./initdb -D /opt/local/var/db/postgresql/defaultdb  #初始化数据库目录文件(前提是你当前用户可以读写访问此文件,假如出错,肯定是权限问题,回到上一步检查)

./pg_ctl  start   -D /opt/local/var/db/postgresql/defaultdb

这样数据库开启了。。。。

此时初始化文件创建好后,会默认增加一个数据库超级管理员用户,就是上面那个当前用户,而不是postgres,在很多网站上写的默认用户是postgres,这是在初始化设置的,所以数据库刚安装完后根本没有默认管理员,他是在你初始化后建立的。上面./initdb -D 就是初始化数据库文件,此后的默认用户就是 /opt/local/var/db/postgresql/defaultdb的拥有者)

./psql -U  当前用户 –h localhost -d  postgres  (用户名:当前用户数据库:postgres  (默认的))

这里-U postgres表示作为postgres用户连接服务器,-h localhost表示连接运行在本地主机上的数据库服务器,-d 表示登录相关数据库,如果没有指定用户名,PostgreSQL将认为使用登录主机的用户名。如果省略了用户名和数据库名,表明以操作系统的身份登录到数据库服务器,此时要求在PostgreSQL服务器中有一个与操作系统同名的登录用户和数据库。使用psql --help可以显示psql的所有命令选项。其中,最重要的选项包括,-U选项允许指定与登录到操作系统用户名不同的用户名登录到数据库。-d选项指定连接的数据库。-h选项指定连接的主机名。-p选项用来指定数据库服务器的端口号。

提示符“postgres=#”表示连接到名为“postgres”的数据库,该数据库是默认数据库。“#”表示是作为数据库超级用户连接的。psql客户程序具有很多特征,它使我们对PostgreSQL的使用变得很容易。除了可以使用PostgreSQL命令SELECT, INSERT, UPDATE, CREATE TABLE等,psql还提供了许多内部命令,这些命令称为元命令meta-commandPostgreSQL命令被发送到服务器而元命令由psql自身处理。元命令都是由反斜线\开头后跟一个或多个字母表示的命令有些命令还可以带参数。表1.2给出了一些常用的元命令。SQL命令不同元命令不需要使用分号结束直接按回车即可。

创建数据库用户:(注:下文中“postgres=#”表示当前postgres数据库已登录,#表示超级用户登录)

只有数据库管理员才能创建用户。首先以超级用户身份登录到PostgreSQL然后使用下面的SQL语句创建一个名为bookstore的数据库用户 postgres=# CREATE USER msf_userpostgres-# LOGINpostgres-# CREATEDBpostgres-#  encrypted PASSWORD 'msf_password' USER(此为反馈结果)。要结束SQL语句应该输入分号''然后按回车。该语句中LOGIN表示该用户是登录用户CREATEDB 表示该用户具有创建数据库对象的权限PASSWORD指定用户的口令它使用单引号定界。使用“\du”元命令可以显示用户的状态。

创建bookstore数据库:

下面的SQL语句创建一个名为msfdb的数据库该数据库属于msf_user用户。 postgres=# CREATE DATABASE msfdbpostgres-# 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模式中