终端无法识别mysqld和mysql命令

时间:2016-10-20 16:27:05

标签: mysql bash macos sudo denied

我在OSX 10.9.5中运行并且在尝试重置我的MySQL根密码时我键入了这个:

  

sudo mysqld_safe --skip-grant-tables

在被要求输入管理员密码后,我收到了这个错误:

  

sudo:mysqld_safe:找不到命令

我在

中写道
  

cd / usr / local / mysql

另外,我有sudo命令的问题,虽然我登录了管理帐户我的帐号,它经常被拒绝,就像使用此命令基本上相同的问题(重置我的root密码)

  

sudo kill cat /usr/local/mysql/data/rodongi.pid

然后我得到了

  

cat:/usr/local/mysql/data/rodongi.pid:权限被拒绝

     

密码:

输入密码后......

  

用法:kill [-s signal_name] pid ...          kill -l [exit_status]          kill -signal_name pid ...          kill -signal_number pid ...

我不知道为什么

  • 1)即使我使用sudo命令(另一次sudo !!)我也没有这个权限。
  • 2)为什么msql-bash不能识别mysql和mysqld命令(我也尝试过使用terminal-bash;也不能正常工作)

1 个答案:

答案 0 :(得分:0)

第一个问题

您正在尝试执行命令mysqld_safe,因此该命令应位于终端查找命令的 PATH 上。 (您可以通过运行echo $PATH来查看这些位置。不同的位置用冒号分隔。)

由于您正在尝试运行本地目录中的文件,因此您应该键入./mysqld_safe告诉shell您要提供文件路径,否则它就会出现问题。\ n \ n \ n 在 PATH 中搜索它。 (您可以通过指定完整路径从任何地方运行该文件。)

另一个解决方案是在/usr/local/bin/中创建一个指向/ usr / local / mysql / mysqld_safe`的符号链接(如果我理解正确的话,这是命令的路径)。这样你就可以从任何地方运行命令,因为它在shell寻找的路径中。

第二个问题

由反引号包围的cat命令由运行sudo命令之前的shell 执行(如果该文件对所有人都可读,则shell将执行如下操作:sudo kill 12345 )。

要以root身份运行cat,您应该运行以下命令:

sudo bash -c 'kill `cat /usr/local/mysql/data/rodongi.pid`'

这样,你以root身份运行bash,然后运行kill命令,从而以root身份读取rodongi.pid文件。