终端无法识别 mysqld 和 mysql 命令

Posted

技术标签:

【中文标题】终端无法识别 mysqld 和 mysql 命令【英文标题】:Terminal doesnt not recognise mysqld and mysql commands 【发布时间】:2017-03-02 18:25:33 【问题描述】:

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

sudo mysqld_safe --skip-grant-tables

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

sudo: mysqld_safe: 找不到命令

这是我写的

cd /usr/local/mysql

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

sudo 杀死cat /usr/local/mysql/data/rodongi.pid

然后我得到了

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

密码:

输入密码后……

用法:kill [-s signal_name] pid ... 杀死 -l [退出状态] 杀死 -signal_name pid ... 杀死 -signal_number pid ...

不知道为什么

1) 我没有权限,即使我使用了 sudo 命令(还有一次是 sudo!!) 2) 为什么 msql-bash 不能识别 mysql 和 mysqld 命令(我在终端 bash 中也试过;也不行)

【问题讨论】:

使用which mysql检查你的Mac是否安装了MySQL。 我确实安装了 mysql。我什至可以启动 mysql 服务器但无法访问 MySQLWorkbench,因为我需要 orrt 密码。无论如何,我在终端 bash 和 mysql-bash 中尝试了它,但没有得到任何响应。 rodongi$ 哪个 mysql rodongi$ 如果在终端 bash which mysql 没有返回任何结果,你怎么知道你安装了 mysql? 我在系统偏好设置中获得了 MySQL :) type -a mysql 应该显示它的安装位置。它返回什么? 【参考方案1】:

第一个问题

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

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

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

第二个问题

由反引号括起来的cat 命令由运行sudo 命令的shell 执行(如果文件对所有人可读,则shell 将执行类似:sudo kill 12345)。 p>

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

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

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

【讨论】:

好的,我通过 echo $PATH 获得了 mysqld_safe 的路径。那我该怎么办? 我试过 sudo bash -c 'kill cat /usr/local/mysql/data/rodongi.pid' 。但是我得到了 cat: /usr/local/mysql/data/rodongi.pid: No such file or directory kill: 用法: kill [-s sigspec | -n 符号 | -sigspec] pid | jobspec ... 或 kill -l [sigspec] @Falanpin 我不确定“我通过 echo $PATH 获得了 mysqld_safe 的路径”是什么意思。 echo $PATH 显示 shell 搜索您键入的命令的位置。如果您指定文件的完整位置,则 PATH 不在游戏中,终端只会运行您告诉它的文件。 我不懂mysql,所以对你的第二条评论帮不上什么忙。我从您的问题中复制了cat 的路径,所以我不知道为什么它不存在。也许 MySql 没有运行? @Idjol 很抱歉,我对此很陌生,所以请原谅我缺乏知识:) 我写了echo $PATH /usr/local/mysql/ 并得到了` /Users/rodongi/.rbenv/shims:/usr /bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin /usr/local/mysql`。我不知道现在该怎么办

以上是关于终端无法识别 mysqld 和 mysql 命令的主要内容,如果未能解决你的问题,请参考以下文章

mysqld命令在linux下怎么不识别

Mac 下mysql 登录报错ERROR 1045 (28000)

mysql 输入命令无反应

mac 终端修改mysql密码(超详细)

ubuntu更改mysql的编码配置

为啥安装mysql 输入mysqld提示不是内部或外部命令 环境变量设置了如下