我正在运行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文件.