简单介绍:Mac 上安装和使用PostgreSQL的方法

两句话概括:

  1. 网络上的文档,因为各自的配置环境不同,所以可以用来参考,但不一定对自己适用;
  2. 官网文档要稍稍权威一点,介绍的要全面一点,今天深有感触;

简介

1.PostgreSQL: 是以加州大学伯克利分校计算机系开发的 POSTGRES,现在已经更名为PostgreSQL,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的数据类型、函数、操作符、聚集函数、索引。免费使用、修改、和分发 PostgreSQL,不管是私用、商用、还是学术研究使用。

2.psql: 是PostgreSQL数据库的命令行交互工具

3.pgAdmin: 是PostgreSQL数据库的图形化管理工具

参考文献

老习惯,列出本文参考和引用的文档和博客,致以崇高的敬意,感兴趣的可以去看看
1.http://postgresapp.com/
2.http://postgresapp.com/documentation/cli-tools.html
3.http://www.yiibai.com/postgresql/2013080439.html

1.正文

公司项目连的都是远程数据库,安全起见,我还是弄个本地数据库,方便自己捣腾数据和后续的学习;
以前在linux(ubuntu 14.04)上,装过PostgreSql,还算熟悉。

1.1 安装postgresql

今天打算在Mac上安装PostgreSql以及它的图形化管理工具PgAdmin,方便对数据的查看和管理。
在Mac上安装PostgreSql,网络上很多方法都是通过homebrew来安装,命令也很简单

brew install postgresql 

但是好像还有另一种方法,就是使用官网提供的Postgres.app,
号称是:The easiest way to get started with PostgreSQL on the Mac。
看到这条口号,是不是有点心动,按照官网的提示来:

Quick Installation Guide
1.Download
2.Move to /Applications
3.Double Click

Done! You now have a PostgreSQL server running on your Mac. 
To use the command line programs, set up your $PATH. 
If you prefer a graphical app, check out the list of GUI tools.

If you get an error saying “the identity of the developer cannot be confirmed”, 
please make sure you didn’t skip step 2. (more info)

安装好运行,界面如下,非常简洁,点击Preferences可以看数据文件夹路径;


Paste_Image.png

点击Open psql,按照以前在linux上安装PostgreSql的经验,安装好后,应该自动创建了一个postgres系统用户 和一个 postgres数据库用户(具有数据库管理权限),并且psql命令应该会默认使用postgres数据库用户 连接数据库。然而实际情况是这样:


Paste_Image.png

可以看到,psql命令执行后,却使用了atyun系统用户来连接数据库。
于是我推测,postgres系统用户 可能没有创建成功(atyun是我这台电脑的管理员账号)。直接进[系统偏好设置]->[用户与群组]查看是否有新增postgres用户,事实证明,并没有创建成功。

还能怎么办,自己手动创建吧:
我们创建一个postgres系统用户,密码自己创一个,赋予管理员权限,创建好之后,如下:


补充:之前没有自动创建postgres系统用户 成功的原因,我猜测可能是Mac的安全机制,
更改之前,要求我点击锁按钮。

Paste_Image.png

很有可能是这个原因导致安装PostgreSql后,没有自动成功的创建出postgres系统用户。
有了postgres系统用户我们来试一下 使用psql命令来连接数据库。

$ psql

问题出现:

command not found

原因是psql工具的绝对路径没有加载到 bash((default shell on OS X))的环境路径$PATH中。
在之前使用postgres.app ->open psql的时候,我们看到了 psql所在的绝对路径为:

/Applications/Postgres.app/Contents/Versions/9.5/bin/

1.2 配置我们的环境路径

Configure your $PATH 配置我们的环境路径(关于在mac上配置环境变量path, 这个和windows上还是挺有差异的,后面会整理一篇文档来介绍下

Postgres.app includes many command line tools. If you want to use them, you must configure the $PATH variable.
If you are using bash (default shell on OS X), add the following line to ~/.bash_profile:

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.5/bin

If you’re using the fish shell, add the following to your config.fish (normally located at ~/.config/fish/config.fish):

set PATH /Applications/Postgres.app/Contents/Versions/9.5/bin $PATH

Tips 1: You can now check if the path is set up correctly by typing which psql.
可以使用 which psql 命令 查看该工具的绝对路径;
结果如下图:

1.3 切换用户,使用psql连接数据库

可以发现,psql连接数据库默认选用的是当前的系统用户;
切换其他系统用户命令(会要求你输入密码,之前我们设置过),然后登录数据库,发现会使用postgres用户访问数据库。

su postgres
psql

至此,我们学会了如何切换系统用户,以及通过psql访问连接数据库;下面介绍如何使用PostgreSql的基础用法:(创建、删除)数据库用户,修改用户密码,(创建、删除)数据库,创建数据库表;

2 使用PostgreSQL

2.1 修改用户密码

因为PostgreSQL自动创建了postgres数据库用户(默认密码应该是空的),所以我们首先要修改它的密码,使用psql命令连接数据库,再使用如下命令,修改该postgres数据库用户的密码(“XXXXXX”可由用户自定义):

alter user postgres with password 'XXXXXX';

结果如下:


Paste_Image.png

出现ALTER ROLE, 代表修改角色成功;

2.2 创建和删除数据库用户

对应命令如下(在postgres=# 环境下):
1.查看数据库用户列表: \du
2.创建数据库用户: create user user1 with password '123456';
3.删除数据库用户: drop user user1;
相应结果见下图:

2.3 创建和删除 数据库

对应命令如下(在postgres=# 环境下):
1.查看数据库列表: \l (list的意思)
2.创建数据库: create database db1;
3.删除数据库: drop database db1;

Paste_Image.png

解释:初始有4个数据库,数据库atyun隶属于atyun数据库用户,其他三个数据库隶属于postgres数据库用户;

2.4 创建和删除 数据库表

对应命令如下(在postgres=# 环境下):
1.选择数据库: \c DatabaseName (choose的意思)
2.创建数据库表: create table people;
3.删除数据库表: drop table people;
4.查看数据库信息:\d (database list的意思)

Paste_Image.png

3 使用pgAdmin图形化管理数据库

1. 运行pgAdmin,打开,创建连接

Paste_Image.png

2.填写相关配置信息:

Paste_Image.png

Paste_Image.png

点击save,进行保存。
Paste_Image.png

3. 查看
在db1/Schemas/public/Tables/下可以看到我们刚才创建的 数据表(department).
Paste_Image.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,999评论 4 368
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,102评论 1 302
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,709评论 0 250
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,439评论 0 217
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,846评论 3 294
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,881评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,062评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,783评论 0 205
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,517评论 1 248
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,762评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,241评论 1 264
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,568评论 3 260
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,236评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,145评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,941评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,965评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,802评论 2 275

推荐阅读更多精彩内容