问题

Linux命令行输入whereis mysqlm,没有返回结果,请问怎么回事?

回答
兄弟,你这个问题我太理解了,当年我也是这么过来的。你在命令行里敲了 `whereis mysqlm`,然后屏幕就那么光秃秃的,啥也没给出来,心里肯定犯嘀咕:这玩意儿是不是装错了?或者我这命令打得不对?

其实啊,这事儿有好几种可能性,我给你掰扯掰扯,希望能帮你找找问题在哪儿。

1. `whereis` 命令是干啥的?

先搞清楚 `whereis` 这家伙是干啥的。你可以把它想象成一个专门找“正规军”的侦探。它主要负责在几个固定的、预设好的目录里搜索你给它的命令、库文件(比如 `.so` 文件)、以及一些相关的配置文件。

它搜的范围通常是:

`/bin`: 可执行的二进制文件,就是你直接敲命令能跑起来的那些。
`/sbin`: 系统管理员用的命令,也多是可执行文件。
`/usr/bin`: 用户级别的可执行文件。
`/usr/sbin`: 用户级别的系统管理命令。
`/usr/lib` 和 `/usr/lib64`: 各种共享库文件(`.so` 文件)。
`/etc`: 一些与软件相关的配置文件。

所以,`whereis` 不是万能的。它只在你找那些“标准安装”的程序时比较给力。如果你装的不是那么“规矩”,或者它根本没装上,那它就找不到,也就不会给你任何输出。

2. `mysqlm` 这个名字是不是有点怪?

你敲的是 `mysqlm`,这个 `m` 结尾是不是你多打了一个?通常情况下,我们安装和使用的 MySQL 客户端命令是 `mysql`,服务器端命令可能是 `mysqld`,管理工具可能会有 `mysqldump`、`mysqladmin` 这些。

你有没有可能想找的是 `mysql` 这个命令本身? 如果是的话,你敲 `whereis mysql` 应该能找到一些东西(前提是你装了)。

小提示: 如果你确实想找一个叫 `mysqlm` 的东西,那得看看你是不是安装了一个特殊的插件、脚本或者某个第三方工具,它的名字恰好是 `mysqlm`。但这种可能性比较小,一般标准的 MySQL 安装不会出现这个名字的命令。

3. MySQL根本没安装,或者没装在“正规”地方

这可能是最直接的原因。如果你的 Linux 系统上根本就没有安装 MySQL 客户端或服务器,或者安装了但它是以一种非常“野路子”的方式安装的(比如手动编译安装到了 `/opt/mysql/bin` 这样的自定义目录,而且这个目录没有被添加到系统的 PATH 环境变量里),那么 `whereis` 肯定是找不到的。

怎么检查 MySQL 是否安装了?
你可以在命令行试试敲 `mysql version` 或者 `mysqld version`。如果装了,它们会显示版本信息。如果没装,就会提示找不到命令。
或者,你可以用包管理器来检查。
Debian/Ubuntu 系列: `dpkg l | grep mysql` 或者 `apt list installed | grep mysql`
Red Hat/CentOS/Fedora 系列: `rpm qa | grep mysql` 或者 `dnf list installed | grep mysql`

4. PATH 环境变量的问题

即便 MySQL 装好了,如果它的可执行文件所在的目录没有被包含在系统的 `PATH` 环境变量里,你直接敲命令也找不到。`whereis` 的搜索范围是固定的几个目录,它也不会去帮你检查 `PATH`。

不过,如果你能直接执行 `mysql` 命令(比如输入 `./mysql`),这说明它在你当前目录下。但如果你直接敲 `mysql` 命令就提示找不到,那很可能是 PATH 的问题。

怎么看 PATH 环境变量?
在命令行输入 `echo $PATH`。你会看到一串用冒号 `:` 分隔的目录列表。系统在查找命令时,就是按顺序在这串目录里找。

5. `which` 和 `type` 命令的补充

为了更全面地帮你判断,你还可以试试 `which` 和 `type` 这两个命令:

`which mysqlm`: `which` 主要就是用来查找命令在 `PATH` 环境变量里能找到的第一个可执行文件的路径。如果 `which` 也找不到,那基本上就是没装或者不在 PATH 里。
`type mysqlm`: `type` 这个命令更强大一些,它会告诉你 `mysqlm` 是一个内置命令、一个别名(alias)、一个函数,还是一个外部命令(可执行文件)。如果它告诉你“mysqlm is not found”之类的,那就说明系统压根没识别这个命令。

总结一下可能的原因和排查步骤:

1. 确认命令拼写: 你是不是想找 `mysql` 而不是 `mysqlm`?先试试 `whereis mysql`。
2. 检查是否安装: 用包管理器(`dpkg`, `rpm`, `apt`, `dnf`)或者直接运行 `mysql version` 来确认 MySQL 是否安装。
3. 搜索所有文件: 如果你确定装了,但 `whereis` 和 `which` 都找不到,那可能是装在了非常规路径。你可以试试用 `find` 命令全局搜索(这会比较慢):
```bash
sudo find / name mysqlm type f 2>/dev/null
或者找 mysql 这个名字
sudo find / name mysql type f 2>/dev/null
```
`2>/dev/null` 是为了忽略那些你没有权限访问的目录的错误提示。
4. 检查 PATH 环境变量: 如果你找到了 MySQL 的可执行文件路径(比如 `/usr/local/mysql/bin/mysql`),但直接敲 `mysql` 找不到,说明这个路径不在你的 `PATH` 里。你需要把它加进去,比如修改 `~/.bashrc` 或 `~/.profile` 文件。

希望这些信息能帮到你!如果还有疑问,可以再把你的系统环境(比如 Linux 发行版和版本)以及你觉得 MySQL 是怎么装的(比如是通过源码编译、还是用包管理器安装的)告诉我,我再帮你分析分析。

网友意见

user avatar

第一个问题:

我在执行“查询所有Mysql对应的文件夹”的操作的时候,输入whereis mysqlm,我认为本应该返回mysqlm所在的目录,但是什么都没有返回。请问这是为什么呢?难道whereis命令不就是查目录的吗?是不是因为本机根本就没装MySQL呢?

回答:

在命令行输入man whereis,按下回车,会显示出关于whereis的功能介绍,开头内容如下:

whereis - locate the binary, source, and manual page files for a command

说明,whereis可以用来寻找某个命令的“二进制、源代码、和man手册页”这三类文件的位置(路径),也就是说whereis不是用来寻找任何类型文件的位置(路径)的。例如:

输入
whereis ls

输出
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

可以看到,输出了ls的二进制文件的路径:/usr/bin/ls 以及ls的两个man手册页文件的路径: /usr/share/man/man1/ls.1.gz 和 /usr/share/man/man1p/ls.1p.gz,但是没有显示源代码文件的路径,因为我这台机器上没有安装ls的源代码。

同理,如果本机安装了mysql,也可以找到mysql的相关文件,例如:

输入
whereis mysql

输出
mysql: /usr/bin/mysql /usr/lib/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

可以看到,mysql的二进制可执行文件的路径:/usr/bin/mysql;二进制库文件目录的路径:/usr/lib/mysql;源代码的头文件目录的路径: /usr/include/mysql ,一些存放mysql相关的其他文件的路径:/usr/share/mysql;以及man手册页文件的路径:/usr/share/man/man1/mysql.1.gz。

参考资料:

man7.org/linux/man-page


第二个问题:

顺便问一句,mysqlm是Linux里的一个文件吗?

回答:

严谨来说MySQL是一个可以运行于“以Linux内核为基础的操作系统”但独立于Linux操作系统内核的软件包,所以肯定不属于Linux,也不一定要属于任何“以Linux内核为基础的操作系统”的一部分,所以即便存在mysqlm文件,也不一定是Linux里的一个文件。

我不是很熟悉MySQL的文件体系架构,但至少从Arch Linux的MySQL安装包中是看不到mysqlm这个文件的,所以全新安装的MySQL应该是找不到这个文件的。可以从Arch Linux的官方包网站浏览MySQL的安装包内提供了哪些文件,如图:

参考资料:

archlinux.org/packages/

archlinux.org/packages/

archlinux.org/packages/

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有