首页 文章

终端无法识别mysqld和mysql命令

提问于
浏览
0

我在运行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

    第一个问题

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

    由于您尝试运行本地目录中的文件,因此应键入 ./mysqld_safe 以告诉shell 're giving a path to file, otherwise it'll在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 文件 .

相关问题