终端无法识别mysqld和mysql命令

我正在运行OSX 10.9.5,并尝试重置MySQL根密码时,我输入了以下内容:

sudo mysqld_safe –skip-grant-tables

在询问管理员密码后,出现此错误:

sudo: mysqld_safe: command not found

我写在

cd /usr/local/mysql

另外,我在使用sudo命令时遇到问题,尽管我在我的帐户上登录了admin帐户,但它经常给我权限被拒绝,就像使用此命令来解决基本相同的问题(重置我的root密码)

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

然后我得到了

cat: /usr/local/mysql/data/rodongi.pid: Permission denied

Password:

输入密码后……

usage: 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中尝试过;也不起作用)

解决方法:

第一个问题

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

由于您正在尝试运行本地目录中的文件,因此应键入./mysqld_safe来告诉Shell您正在提供文件的路径,否则它将在PATH中进行搜索. (您可以通过指定完整路径从任何地方运行文件).

另一个解决方案是在/usr/local/bin /中建立一个指向/usr/local/mysql / mysqld_safe`的符号链接(如果我正确理解,这是命令的路径).这样,您就可以在任何地方运行该命令,因为它位于外壳程序正在寻找的路径中.

第二个问题

在运行sudo命令之前,shell将执行由反引号包围的cat命令(如果每个人都可以读取该文件,则shell将执行以下命令:sudo kill 12345).

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

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

这样,您以root身份运行bash,这又运行kill命令,从而以root身份读取rodongi.pid文件.

上一篇:对python拒绝bash权限


下一篇:关于APP接口设计