在 Mac 命令行尝试运行 mysql -u root -p 时,遇到了 zsh: command not found: mysql 的错误提示。这表明系统无法找到?mysql?
命令,即该命令不在系统的可执行路径中。我们知道,在Unix/Linux系统中,执行命令时,系统会在一些预定义的目录中查找可执行文件。这些目录的集合被定义为系统的 PATH。如果命令不在这些目录中,系统将无法找到它,从而导致“command not found”错误。
根据?zsh: command not found: mysql 提示内容,我使用的是 zsh shell,不同人的 Mac 可能使用的 shell 不同,比如 bash shell、ksh shell、tcsh shell 等。不同的 shell 之间其实可以切换,使用不同 shell 的小伙伴将本文中涉及到的文件名替换,其他步骤保持一致即可,当然也可以考虑换个 shell。参考 Mac 切换终端 shell 方法
首先我们配置一个 .zsh_profile 文件 (如果用的是 bash shell,就命名为 .bash_profile):
sudo vim .zsh_profile
输入密码后,按“i” 进入 INSERT 插入模式后将?export PATH=${PATH}:/usr/local/mysql/bin 写进?.zsh_profile 文件中。注:sudo 是用于以超级用户或系统管理员的权限执行指定的命令。执行 sudo
命令需要提供用户密码,以确认用户有足够的权限执行该命令。vim .zsh_profile 这部分意思是使用 vim 编辑器对 .zsh_profile 文件进行编辑和保存更改。
?shift+zz 保存并退出后,执行:
source .zsh_profile
source 命令用于?shell 环境中执行指定的脚本文件,作用是重新加载或应用指定脚本文件中的配置,使得其中的环境变量和其他设置在 shell 会话中生效。执行完 source 命令后就可以执行 $ mysql -u root -p 命令了。
因为现在我们已经将?export PATH=${PATH}:/usr/local/mysql/bin,也就是 mysql 的 bin 包写进了一个叫 .zsh_profile 的脚本文件,并且保存并执行了该文件,也就意味着环境变量配置完成!所以在当前 Terminal 可以正常使用 mysql 命令。
但是,这意味着我们每次重新打开一个 Terminal,必须要重新运行?source .zsh_profile 命令,才能使用 mysql 命令,否则就会提示找不到 mysql 命令。那么,有什么办法可以自动执行?source .zsh_profile 命令,让我们每次打开 Terminal 都可以直接执行 mysql 命令呢?请继续往下看。
现在我们的 .zsh_profile 文件已经保存在自己的 Mac 电脑上了,为了不用每次重开一个 Terminal 都执行一次这个文件,我们可以将执行这个文件的命令写进 .zshrc 配置文件中。.zshrc 配置文件是属于 zsh shell 的配置文件,它包含了用于配置 zsh 的命令和设置,.zshrc 中的配置项在每次启动新的 zsh shell 时都会生效。所以只要我们将执行 .zsh_profile 的命令写进 .zshrc 就能保证每次启动新的 shell 都能自动执行 source .zsh_profile。
执行以下命令编辑 .zshrc 配置文件,将以下内容写进配置文件,内容的意思是检查 .zsh_profile 文件如果存在就执行其中的内容 (执行的内容就是 mysql 的 bin 包)。shift + zz 保存并退出后,不要忘记?source ~/.zshrc 命令。
vi ~/.zshrc
source ~/.zshrc
从此以后,如果我们打开新的 Terminal,就可以跳过 source .zsh_profile 命令,直接运行 mysql -u root -p 命令啦。