一尘不染

在osx的命令行中使用Mysql-找不到命令?

mysql

我试图在我的Mac OS X 10.9.5上启动并运行mysql。我已经安装了最新版本的14.14
5.6.21社区服务器。我已经进入系统偏好设置并启动了mysql服务器,然后启动了终端并输入了以下内容:

/usr/local/mysql/bin/mysql --version返回版本,但是当我键入任何类型的mysql命令时,我都会得到command not found。我也试过sudo mysql_secure_installationmysql -u root --password=password

我确实安装了带有mysql等的虚拟主机,但是我希望能够首先在命令行中掌握它。


阅读 334

收藏
2020-05-17

共1个答案

一尘不染

因此,终端在很少的地方寻找命令。此位置存储在您的$PATH变量中。可以将其视为一个全局变量,终端在该全局变量中进行迭代以查找任何命令。这通常是二进制文件,看起来通常会引用/
bin文件夹。

/bin文件夹中有很多可执行文件。原来这是命令。这些不同的文件夹位置存储在一个全局变量中,即$PATH:

现在,通常程序在安装时会负责更新PATH并告诉您的终端,嘿,我可以是bin文件夹中的所有命令。

事实证明,MySql在安装时不会执行此操作,因此我们必须手动执行。

我们通过以下命令来做到这一点,

export PATH=$PATH:/usr/local/mysql/bin

如果将其分解,export不言而喻。将其视为一项任务。因此,export一个值PATH与旧$PATHconcat 值与新binie
的变量/usr/local/mysql/bin

这样,执行完所有内部命令后/usr/local/mysql/bin,我们便可以使用它们。

这里有一个小地方。将一个终端窗口视为程序的一个实例,也许$PATH是类变量(也许)之类的东西。请注意,这纯粹是假设。因此,关闭后,我们将丢失新任务。而且,如果我们重新打开终端,我们将无法再次访问命令,因为最后一次导出时,该命令存储在易失性主存储器中。

现在,我们每次使用终端时都需要导出mysql二进制文件。因此,我们必须坚持前进的道路。

您可能会知道,我们的终端dotfiles在终端初始化时使用了称为加载配置的东西。我喜欢将其视为每次创建新的终端实例时传递给构造函数的东西集(同样是一种假设,但接近于它可能在做什么)。所以是的,现在您已经明白了我们将要做的事情。

.bash_profile是最主要的之一dotfile

因此,在以下命令中,

echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile

我们正在做的就是将echo输出结果保存到〜/ .bash_profile中

因此,如上所述,每次打开终端或终端实例时,我们dotfiles都已加载。因此.bash_profile分别被加载,export并且我们上面附加的内容被运行,从而全局$PATH变量被更新,并且我们将所有命令都包含在内/usr/local/mysql/bin

聚苯乙烯

如果您不是直接运行第一个命令导出而是为了持久而仅运行第二个命令?相对于您当前必须运行的终端实例,

source ~/.bash_profile

这告诉我们的终端重新加载该特定文件。

2020-05-17