ausheng

Mac 上安装和使用PostgreSQL的方法

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可以看数据文件夹路径;

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

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

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

很有可能是这个原因导致安装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/

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 命令 查看该工具的绝对路径;
结果如下图:

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

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

su postgres
psql

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

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

su postgres
psql

至此,我们学会了如何切换系统用户,以及通过psql访问连接数据库

ausheng

爱生活,爱编程

AUSHENG – BLOG

不要害羞,保持联系。我们喜欢结识有趣的人,结交新朋友。