在osx中的命令行中使用Mysql-找不到命令?
我正在尝试让mysql在我的MacOSX10.9.5上运行。我已经安装了最新版本的社区服务器。我已经转到系统首选项并启动了mysql服务器,然后启动终端并键入以下内容:在osx中的命令行中使用Mysql-找不到命令?,mysql,macos,Mysql,Macos,我正在尝试让mysql在我的MacOSX10.9.5上运行。我已经安装了最新版本的社区服务器。我已经转到系统首选项并启动了mysql服务器,然后启动终端并键入以下内容: /usr/local/mysql/bin/mysql--version返回版本,但当我键入任何类型的mysql命令时,都会得到未找到的命令。我还尝试了sudomysql\u secure\u安装,mysql-u root--password=password 我确实安装了带有mysql等的web主机,但我希望能够首先在命令行中使
/usr/local/mysql/bin/mysql--version
返回版本,但当我键入任何类型的mysql命令时,都会得到未找到的命令
。我还尝试了sudomysql\u secure\u安装,mysql-u root--password=password
我确实安装了带有mysql等的web主机,但我希望能够首先在命令行中使用它。这意味着/usr/local/mysql/bin/mysql不在PATH变量中
执行/usr/local/mysql/bin/mysql以获取mysql外壳
或者在终端中键入以下内容:
PATH=$PATH:/usr/local/mysql/bin
将其添加到PATH变量中,这样您就可以运行mysql,而无需指定路径,因此终端很少会在其中查找命令。这些位置存储在$PATH
变量中。将其视为一个全局变量,终端在其中迭代以查找任何命令。这通常是二进制文件,看看/bin文件夹通常是如何被引用的
/bin
文件夹中有许多可执行文件。原来这是命令。这些不同的文件夹位置存储在一个全局变量中,即$PATH
,由分隔:
现在,安装后的程序通常负责更新路径
&告诉您的终端,嘿,我可以在我的bin
文件夹中执行所有命令
事实证明,MySql在安装时不执行此操作,因此我们必须手动执行此操作
我们是按照命令做的
export PATH=$PATH:/usr/local/mysql/bin
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile
如果将其分解,export
是不言自明的。把它看作是一项任务。因此导出一个值为old$PATH
的变量PATH
concat和newbin
,即/usr/local/mysql/bin
这样,在执行之后,/usr/local/mysql/bin
中的所有命令都对我们可用
这里有一个小陷阱。将一个终端窗口视为程序的一个实例,可能类似于$PATH
是类变量(可能)。请注意,这是纯粹的假设。因此,一旦结束,我们就失去了新的任务。若我们重新打开终端,我们将无法再次访问我们的命令,因为上次我们导出时,它存储在易失性的主内存中
现在我们需要在每次使用终端时导出mysql二进制文件。因此,我们必须坚持我们的道路
您可能知道,我们的终端在初始化终端时使用了一些调用来加载配置的东西。我喜欢将其视为每次创建terminal的新实例时传递给构造函数的一组内容(同样是一种假设,但接近于它可能正在做的事情)。是的,现在你知道我们要做什么了
.bash\u profile
是已知的主要点文件之一
所以按照命令,
export PATH=$PATH:/usr/local/mysql/bin
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile
我们正在做的是保存echo的结果,即输出字符串到~/.bash_profile
现在,正如我们上面提到的,每次打开终端或终端实例时,都会加载dotfiles
。因此,分别加载.bash\u profile
,并运行上面附加的export
,从而更新我们的全局$PATH
,并获得/usr/local/mysql/bin
中的所有命令
附言
如果您不是直接运行第一个命令导出,而是运行第二个命令来持久化它?对于当前正在运行的终端实例,您必须
source ~/.bash_profile
这将告诉我们的终端重新加载该特定文件。您可以通过添加MySQL$PATH
来修改.bash\u配置文件,如下所示:
导出路径=$PATH:/usr/local/mysql/bin
我做了以下工作:
1-打开终端,然后$nano.bash_profile
或$vim.bash_profile
2-将以下路径代码添加到.bash\u配置文件中
# Set architecture flags
export ARCHFLAGS="-arch x86_64"
# Ensure user-installed binaries take precedence
export PATH=/usr/local/mysql/bin:$PATH
# Load .bashrc if it exists
test -f ~/.bashrc && source ~/.bashrc
3-保存文件
4-使用$source~/.bash_配置文件刷新终端
# Set architecture flags
export ARCHFLAGS="-arch x86_64"
# Ensure user-installed binaries take precedence
export PATH=/usr/local/mysql/bin:$PATH
# Load .bashrc if it exists
test -f ~/.bashrc && source ~/.bashrc
5-要进行验证,请键入Terminal$mysql--version
6-它应该像这样打印输出:
$mysql版本14.14发行版5.7.17,适用于macos10.12(x86_64)
终端现在配置为从.bash\u配置文件中的$PATH
读取MySQL命令 修改bash配置文件,如下所示
$vim~/.bash_配置文件
导出路径=/usr/local/mysql/bin:$PATH
保存后,您可以键入mysql在终端中显示mysql提示符。对我来说,以下命令起作用:
$ brew install mysql
$ brew services start mysql
如果您的mysql安装不是最新版本的mysql,则必须创建一个符号链接
$ brew link --force mysql@5.6
您的$PATH
中有什么?谢谢-在将路径添加到路径之前,我刚刚手动将路径更改为/usr/local/mysql/bin/
。然后我键入了ls
,我可以看到所有的mysql文件,但是当我键入mysql
时,我仍然找不到命令?PATH变量和您当前的工作目录是两个不同的东西$路径是由我在上面给您的行设置的,当您只键入一个独立命令而没有绝对/相对路径时,系统将在其中查看。当您使用cd
将工作目录更改为/usr/local/mysql/bin时,您必须通过键入/mysql
来调用mysql,让系统知道在当前目录中使用mysql,而不是尝试在路径变量的某个目录中查找mysql。谢谢,在获得信息后,事情看起来更清楚了。我刚刚看到了您的代码行的一个更复杂的版本,但我正在努力区分您的代码和what