美文网首页data scienceMacswift-server
简单介绍:Mac 上安装和使用PostgreSQL的方法

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

作者: 严三金 | 来源:发表于2016-08-11 17:33 被阅读25710次

两句话概括:

  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

相关文章

网友评论

  • cb878579a389:为了赞作者专门又登录一次简书,哈哈。关于Postgres安装之后默认的用户名问题可能和安装方式有关系,我看有的人默认是postgres有的是当前系统用户名。我使用的是官网的 installer 安装的默认是 postgres。
  • f56e966bc0dd:博主您好,请问可以使用移动硬盘作为数据文件夹吗?
  • 不一样的丶我们:想问下, 你安装完成postgerSQL之后是怎么打开pgadmin的??
  • 3100ef56793f:请问一下您,为什么系统的用户不能用呢,而是要大费周折去创建一个postgres系统用户呢
  • 7emini:学习了
  • 8638bcc080ae:对于我这个完全摸不着头绪的新手+Mac user来说实在太有帮助了,谢谢!
    严三金: @Brachy 能帮到你,很开心 😀
  • 雨飞飞雨:非常不错!
    雨飞飞雨:@帅神降临 客气客气!
    严三金: @Anyant 谢谢
  • hahaYXXXJ:写得很不错,排版清晰
    严三金: @代码的搬运工 谢谢
  • Soyanggg: :pensive: 更改用户的时候输不进去密码好纠结
    刚接触到这个软件完全不熟悉,求指导~
    严三金: @Soyanggg 太久没逛简书了,问题都解决了吗?😊
  • bd03047306e2:初学pg,手贱删了9.5.3,安装9.6.0之后就不会用了😂,这篇教程简直实用。
    看完之后还有几个问题 求指点:
    ( 假设 电脑用户名 为 username )
    1. 如果从 pgsl 打开数据库,每次打开 psql 都是默认 username 连接 username database,请问怎么样设置才可以变成 postgres 连接 postgres database?
    因为每次换用户的时候,需要先 \q ,然后 su postgres ,输密码,每次都要重新copy一遍环境路径;这样一遍下来也够累的;
    我以为删掉 username database 就可以自动该连别的 database ,结果悲剧,pgsl 彻底连不上了,\c 别的 database 也没反应,只好用 pgAdmin 新建了一个 username database 才回来;本来还打算把 username 删掉试一下的,不敢试了😂
    所以,求解答如何设置成默认 postgres 连接 postgres database,是否可以把 username 和 username database 都删掉?
      最后还有个细节,我记得之前 9.5.3 自带的 pgAdminIII 不需要打开 Postgres 就可以连接并读写,而新的 pgAdmin4 在没打开 Postgres 的时候是连接不成功的,你们的版本是不是也这样?
    严三金:@菁芑 可参考本文的 1.2小结,可以配置环境路径。 转载:(Mac)在bash和zsh配置环境变量path的几种方法(http://www.jianshu.com/p/020f3d02f538) 你看看这个,这样 就不用每次copy 一遍环境路径了
    bd03047306e2:@帅神降临 谢回复,只是如果每次psql的话,还得先copy一遍环境路径,觉得繁琐。
    严三金:@菁芑 (1)最简单的可以这样,使用psql连接的时候,可以指定要登录的数据库用户,也可以指定 要连接的数据库名: psql -U 用户名 -d 数据库名; eg.1: psql -U postgres eg.2: psql -U postgres -d dbName1 ; (2) 建议你的用户username 不要删,username 相关的database 不用的话,可以删掉。(3) Postgres 可以成设置开机自动启动,方法 网络上有很多,你可以查查, 这样你每次开机 只要 Postgres是启动状态,打开pgAdmin4 就能连接并读写了。 PS:psql设置默认连接用户的 方法,我明天在电脑上查查看...
  • 我是个科学家:果断留下痕迹,致以最崇高的敬意~🙆

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

本文链接:https://www.haomeiwen.com/subject/aurssttx.html