之前试过macports,但是看网上的评价不怎么样,主要是说会安装一些其他的包,对于我这样有洁癖的来说当然不行了。另外看到HomeBrew,便试了下,果然很爽,尤其是对于用惯了apt-get的来说。主页上有很方便的安装方法,但是蛋疼的是,在天朝常常会没法连接,没关系,可以打开这个地址,将网页另存为以.rb结尾的文件,然后终端中使用ruby 文件.rb就可以了。但是,有时候就是打开这个raw页面也需要爬墙,唉,无奈。好在爬墙总不是什么困难的事情。
安装好HomeBrew之后,使用
brew update&brew upgrade
更新后,便可以开始postgresql了。
brew install postgresql
创建postgreSql数据库:
initdb /usr/local/var/postgres
启动服务:
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
停止服务:
pg_ctl -D /usr/local/var/postgres stop -s -m fast
自动启动服务:
mkdir -p ~/Library/LaunchAgents cp /usr/local/Cellar/postgresql/9.2.4/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
删除自动启动服务:
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
好了,现在基本就算完成了,很简单。这时候下载pgadmin3,安装之后会出现role 'postgres' does not exist的错误,原因你是没有创建postgres用户。
createuser -d -a -P postgres
执行完这行命令后,postgresl角色就创建好了,再连接就不会报错。
导入sql文件,如导入back.sql:
psql -d database_name -f back.sql
在linux下需要首先切换到postgres用户再执行该命令:
su postgres
导出数据库到文件:
pg_dump database_name > back.sql
卸载postgresql,如果是使用homebrew安装的话,就和简单了:
brew uninstall postgresql
如果是下载安装包安装的,有两种方法。 1. 自动卸载,在安装目录下,mac下是/Applications/Postgresql下有个uninstall-postgresql.app,双击执行就可以了。 2. 手动删除。
sudo /sbin/SystemStarter stop postgresql-9.2
sudo rm -rf /Applications/PostgreSQL 9.2
sudo rm -rf /etc/postgres-reg.ini
sudo rm -rf /Library/StartupItems/postgresql-9.2
sudo rm -rf /Library/PostgreSQL/9.2
sudo dscl . delete /users/postgres
PS: 可参考这两篇blog 1. http://nextmarvel.net/blog/2011/09/brew-install-postgresql-on-os-x-lion/ 2. http://kidsreturn.org/2012/03/install-postgresql-on-mac-lion-via-homebrew/
基本操作
PostgreSQL安装好后,其会自动以本机当前登录用户名创建三个数据库(Schema),你可以运行以下命令查看:psql -l 。
psql是PostgreSQL的交互式命令行工具
连接数据库
创建用户
创建数据库
授权
授予所有权限GRANT ALL PRIVILEGES ON DATABASE dbname to username;
授予查询权限GRANT SELECT ON DATABASE dbname to username;
权限列表SELECT INSERT UPDATE DELETE RULE REFERENCES TRIGGER CREATE TEMPORARY EXECUTE USAGE
常用命令
 postgres=#为命令行提示符 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|