我想在我的mac osx 10.9.5上运行mysql并运行.我已经安装了最新版本的14.14 5.6.21社区服务器.我已经去了系统首选项并启动了mysql服务器,然后启动了终端并键入了这个:
/usr/local/mysql/bin/mysql --version它返回版本,但是当我输入任何类型的mysql命令时,我得到了command not found.我也试过sudo mysql_secure_installation,mysql -u root --password=password.
我确实安装了mysql等的虚拟主机,但我希望能够首先在命令行中使用它.
kis*_*nio 136
所以终端寻找命令的地方很少.这些地方存储在您的$PATH变量中.将其视为一个全局变量,终端迭代以查找任何命令.这通常是二进制文件,看看/ bin文件夹通常是如何引用的.
/bin文件夹里面有很多可执行文件.原来这是命令.这个不同的文件夹位置存储在一个全局变量内,即$PATH由...分隔:
现在通常安装的程序负责更新PATH并告诉您的终端,我可以成为我bin文件夹中的所有命令.
结果发现MySql在安装时没有这样做,所以我们手动完成它.
我们通过以下命令来做,
export PATH=$PATH:/usr/local/mysql/bin
Run Code Online (Sandbox Code Playgroud)
如果你打破它,export是自我解释.把它想象成一项任务.所以export一个PATH带有值旧的$PATHconcat 的变量与new binie/usr/local/mysql/bin
这样在执行它之后/usr/local/mysql/bin,我们可以使用里面的所有命令.
这里有一个小渔获.将一个终端窗口视为程序的一个实例,也许类似于$PATH类变量(可能).请注意,这是纯粹的假设.所以一旦结束,我们就失去了新的任务.如果我们重新打开终端,我们将无法再次访问我们的命令,因为在我们导出时,它被存储在易失性的主存储器中.
现在我们需要在每次使用终端时导出我们的mysql二进制文件.所以我们必须在我们的道路上坚持不懈.
您可能知道我们的终端使用了一些名为dotfiles在终端初始化时加载配置的东西.我喜欢把它想象成每次创建一个新的终端实例时传递给constructer的东西(再次假设但接近它可能正在做的事情).所以是的,现在你明白了我们要做的事情.
.bash_profile是已知的主要之一dotfile.
所以在以下命令中,
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
我们正在做的是将echo输出字符串的结果保存到〜/ .bash_profile
所以现在正如我们上面提到的那样,每次打开终端或终端实例时我们都会dotfiles被加载.因此.bash_profile分别加载并且export我们上面附加的是运行的,因此我们的全局$PATH更新并且我们得到所有命令/usr/local/mysql/bin.
PS
如果你没有直接运行第一个命令导出但只是运行第二个以便保持它?比你当前运行的终端实例,
source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
这告诉我们的终端重新加载该特定文件.
小智 21
这意味着/ usr/local/mysql/bin/mysql不在PATH变量中.
执行/ usr/local/mysql/bin/mysql来获取你的mysql shell,
或在您的终端中输入:
PATH=$PATH:/usr/local/mysql/bin
Run Code Online (Sandbox Code Playgroud)
将它添加到PATH变量,这样您就可以在不指定路径的情况下运行mysql
小智 7
对我来说,以下命令有效:
$ brew install mysql
$ brew services start mysql
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
117896 次 |
| 最近记录: |