升级PostgreSQL至9.6.6后pg_dump命令找不到的解决咨询
解决Homebrew安装PostgreSQL@9.6后pg_dump找不到的问题
我之前折腾老版本PostgreSQL的时候也碰到过一模一样的问题,给你几个实用的解决思路:
1. 用Homebrew手动link到全局路径
Homebrew安装带@后缀的版本(比如postgresql@9.6)时,默认不会自动把命令链接到/usr/local/bin(这个目录在系统默认PATH里),所以终端找不到pg_dump。你可以执行下面的命令强制link:
brew link postgresql@9.6 --force
执行完之后,再输入which pg_dump,如果输出是/usr/local/bin/pg_dump,并且对应到9.6版本的话,问题就解决了。
⚠️ 注意:如果你的系统里还有其他版本的PostgreSQL在运行,link可能会导致版本冲突,这时候可以试试下面的方法。
2. 持久化配置PATH环境变量
你之前执行的export PATH只是临时生效,关闭终端后就失效了。要让它永久生效,得把路径加到你的shell配置文件里:
- 如果你用的是bash,编辑
~/.bash_profile:
在文件末尾添加一行:open ~/.bash_profile
保存后执行export PATH="/usr/local/Cellar/postgresql@9.6/9.6.6/bin:$PATH"source ~/.bash_profile让配置立即生效。 - 如果你用的是zsh(现在Mac默认是zsh),编辑
~/.zshrc,步骤和上面一样,最后执行source ~/.zshrc。
之后再打开新终端,输入pg_dump --version就能看到9.6版本的信息了。
3. 临时应急:直接使用完整路径执行
如果只是偶尔用一次,不想改配置,可以直接用pg_dump的完整路径执行:
/usr/local/Cellar/postgresql@9.6/9.6.6/bin/pg_dump [你的数据库参数]
最后再确认一下:执行brew services list看看postgresql@9.6是不是处于started状态,确保你用的是刚安装的这个版本的服务。
内容的提问来源于stack exchange,提问作者TAH
相关产品推荐
相关产品推荐

