psql:命令找不到Mac

use*_*424 51 postgresql macos bash psql

我通过http://www.postgresql.org/download/macosx/上的图形安装安装了PostgreSQL

我在我的应用程序中看到它,并且在我的应用程序中也有psql终端.我需要psql在常规终端中工作另一个bash脚本我正在为一个应用程序运行.

出于某种原因,当我跑步时

psql
Run Code Online (Sandbox Code Playgroud)

在Mac终端,我的输出是

-bash: psql: command not found
Run Code Online (Sandbox Code Playgroud)

我在终端上运行了以下内容:

locate psql | grep /bin
Run Code Online (Sandbox Code Playgroud)

而输出是

/Library/PostgreSQL/9.5/bin/psql
Run Code Online (Sandbox Code Playgroud)

然后我编辑了〜/ .bash_profile并将其添加到路径中,如下所示:

export PATH = /Library/PostgreSQL/9.5/bin/psql:$PATH
Run Code Online (Sandbox Code Playgroud)

〜/ .bash_profile中唯一的另一件事是SDK man,它位于脚本底部,因为它应该是.我已经尝试将浴缸设置为/Library/PostgreSQL/9.5/bin/.我也重启了我的终端.

我怎样才能让psql工作?

编辑 添加到.bashrc后,当我打开终端时返回此输出

-bash: export: `/Library/PostgreSQL/9.5/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin': not a valid identifier
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 76

只是把我的评论作为答案,所以很容易找到...

你的PATH略有错误.您需要PATH到"包含目录",而不是实际的可执行文件本身.

你的PATH应该像这样设置:

export PATH=/Library/PostgreSQL/9.5/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

没有额外的sql部分.此外,您必须删除等号周围的空格.

关键字:Postgresql,PATH,macOS,OSX,psql

  • 如果您只想固定单个版本的 postgresql 并且仍然在默认路径中保留二进制文件,您还可以运行“brew link postgresql@9.5 --force”。 (7认同)
  • 从来没有,永远不会忘记在这个命令结束时的`:$ PATH`,否则它会击中风扇并使壳体瘫痪:p (6认同)
  • 只需重新启动您的终端,这可能就是它的全部 (5认同)
  • 对于 Mojave 用户:导出 PATH=/usr/local/opt/postgresql@9.5/bin:$PATH (4认同)
  • 运行 `brew link postgresql@16 --force` 为我解决了这个问题。我什至不需要更新我的`.zshrc`。 (3认同)

amc*_*mcp 20

对我来说这有效:

  1. 下载应用程序:https : //postgresapp.com/downloads.html

  2. 运行命令来配置 $PATH - 请注意,它对我不起作用。 https://postgresapp.com/documentation/cli-tools.html

  3. 手动将其添加到 .bash_profile 文档中:

    cd  # to get to your home folder
    open .bash_profile  # to open your bash_profile
    
    Run Code Online (Sandbox Code Playgroud)

    在您的 bash 配置文件中添加:

    # Postgres
    export PATH=/Applications/Postgres.app/Contents/Versions/latest/bin
    
    Run Code Online (Sandbox Code Playgroud)

    保存文件。重启终端。输入“psql”。完毕。

  • 我认为这对我来说是解决方案,但是当我修改 .zshrc 文件并添加 `export PATH=/Applications/Postgres.app/Contents/Versions/latest/bin` 时,突然我所有的 zshell 功能都不起作用了。每当我输入“ls”、“open”或其他命令时,都会显示“在 zsh 中找不到命令”。 (4认同)
  • 您需要将现有的 $PATH 变量附加到新创建的变量中,这样它就不会覆盖所有内容。导出 PATH=/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH (3认同)
  • @Erick同样的事情也发生在我身上。大家注意这个答案 (2认同)

mis*_*hap 17

从Postgres 文档页面:

sudo mkdir -p /etc/paths.d&& echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp

重新启动你的终端,你将在你的道路上.

  • `postgresapp.com` 不是官方 Postgres 文档。 (5认同)
  • 说明还说“当然,您也可以只编辑您的 .profile 文件。” 直到我使用 Postgres 10 在 MacOS 10.12 Sierra 上执行此操作后,我的 cli 安装才起作用(sudo 命令对我不起作用):`vi ~/.profile 添加这一行:export PATH=$PATH:/Applications/Postgres.app /Contents/Versions/10/bin .source ~/.profile` (3认同)

小智 13

如果Postgresql是从官方网站下载的。安装后,运行这些命令帮助我解决了psql问题。

转到您的主目录cd ~

在您的主目录中,运行ls -a. 使用vim编辑.bash_profile文件

vi .bash_profile打开 vim 编辑器。

i编辑器插入。

添加export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/<Version Number>/bin

Version Number的是本地计算机上安装的 postgresql 的版本号。就我而言,安装了版本 12 ,所以我输入

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

esc键并按:wq退出编辑器。

在终端中输入source .bash_profile以读取并执行刚刚作为当前 shell 脚本中的参数传递的文件的内容。

跑步psql

最终结果

总之:

  • cd ~
  • vi .bash_profile
  • export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/12/bin 记下版本号
  • exit vim
  • source .bash_profile
  • psql作品

  • +1,不明白为什么这么忙,为什么不在 UI 安装过程中自动设置 (3认同)

Ous*_*ail 11

对于MacO 蒙特利 12.4:

export PATH=$PATH:/Library/PostgreSQL/<postgres version>/bin
Run Code Online (Sandbox Code Playgroud)

示例:(对我有用)PostgreSQL 版本 14

export PATH=$PATH:/Library/PostgreSQL/14/bin
Run Code Online (Sandbox Code Playgroud)

然后运行:exec zsh -l重新启动终端

祝你好运!!


Dav*_*ini 7

如果有人通过Mojave使用自制软件:

export PATH=/usr/local/opt/postgresql@9.5/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

如果需要,请更改版本!


Obi*_*nya 7

如果 Postgres 已下载并安装,运行此命令应该可以解决问题:

sudo mkdir -p /etc/paths.d &&
echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee 
/etc/paths.d/postgresapp
Run Code Online (Sandbox Code Playgroud)

重新启动终端,您就可以使用psql命令了。

参考: https: //postgresapp.com/documentation/cli-tools.html


小智 6

Mojave,Postgres 是通过安装的

brew install https://raw.githubusercontent.com/lembacon/homebrew-core/bede8a46dea462769466f606f86f82511949066f/Formula/postgresql@9.6.rb
Run Code Online (Sandbox Code Playgroud)

如何在您的路径中获取 psql:

brew link postgresql@9.6 --force
Run Code Online (Sandbox Code Playgroud)

  • 强制brew使用给定的postgresql版本对我有用。 (3认同)

Jul*_*pez 5

修改你的PATHin .bashrc,而不是 in .bash_profile

http://www.gnu.org/software/bash/manual/bashref.html#Bash-Startup-Files


iko*_*nuk 5

我使用 on 安装postgresql@13Homebrew并在安装后按照终端Mac中给出的说明进行操作zsh

postgresql@13 仅是 keg,这意味着它没有符号链接到 /usr/local,因为这是另一个公式的替代版本。

如果您需要在 PATH 中首先包含 postgresql@13,请运行:
echo 'export PATH="/usr/local/opt/postgresql@13/bin:$PATH"' >> ~/.zshrc

为了让编译器找到 postgresql@13,您可能需要设置:
export LDFLAGS="-L/usr/local/opt/postgresql@13/lib"
export CPPFLAGS="-I/usr/local/opt/postgresql@13/include ”

要让 pkg-config 找到 postgresql@13,您可能需要设置:
export PKG_CONFIG_PATH="/usr/local/opt/postgresql@13/lib/pkgconfig"

升级后重新启动 postgresql@13:
brew services restart postgresql@13

或者,如果您不想/不需要后台服务,您可以运行:
/usr/local/opt/postgresql@13/bin/postgres -D /usr/local/var/postgresql@13

您可以通过运行:检查路径是否已添加, open .zshrc
然后重新启动zsh终端:exec zsh -l