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 当前用户 �Ch localhost -d postgres (用户名:当前用户数据库:postgres (默认的))
这里-U postgres表示作为postgres用户连接服务器,-h localhost表示连接运行在本地主机上的数据库服务器,-d 表示登录相关数据库,如果没有指定用户名,PostgreSQL将认为使用登录主机的用户名。如果省略了用户名和数据库名,表明以操作系统的身份登录到数据库服务器,此时要求在PostgreSQL服务器中有一个与操作系统同名的登录用户和数据库。使用psql --help可以显示psql的所有命令选项。其中,最重要的选项包括,-U<user>选项允许指定与登录到操作系统用户名不同的用户名登录到数据库。-d<dbname>选项指定连接的数据库。-h<host>选项指定连接的主机名。-p<port>选项用来指定数据库服务器的端口号。
提示符“postgres=#”表示连接到名为“postgres”的数据库,该数据库是默认数据库。“#”表示是作为数据库超级用户连接的。psql客户程序具有很多特征,它使我们对PostgreSQL的使用变得很容易。除了可以使用PostgreSQL命令��SELECT, INSERT, UPDATE, CREATE TABLE等,psql还提供了许多内部命令,这些命令称为元命令��meta-command��。PostgreSQL命令被发送到服务器��而元命令由psql自身处理。元命令都是由反斜线��\��开头��后跟一个或多个字母表示的命令��有些命令还可以带参数。表1.2给出了一些常用的元命令。与SQL命令不同��元命令不需要使用分号结束��直接按回车即可。
创建数据库用户:(注:下文中“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 �CU msf_user �Cd msfdb 该命令以msf_user 用户身份连接到msfdb数据库。接下来需要输入用户口令��最后出现的提示符如下�� msfdb=> 在该提示符下就可以使用SQL语句创建数据库对象��并且这些对象将存于msfdb数据库的public模式中