找不到 MySQL - 尝试从命令行访问 MySQL 时出现“找不到命令”错误

Posted

技术标签:

【中文标题】找不到 MySQL - 尝试从命令行访问 MySQL 时出现“找不到命令”错误【英文标题】:Cannot find MySQL -- get "command not found" error when trying to access MySQL from command line 【发布时间】:2012-02-08 10:11:43 【问题描述】:

我之前通过 SSH 安装、连接并上传到 WordPress mysql 数据库没有问题。运行我的服务器的人进行了一些配置更改,现在当我尝试通过同一服务器上的命令行登录 MySQL 以访问同一数据库时,我收到“bash:mysql:找不到命令”错误。

我对这一切都比较陌生,所以我真的不知道该怎么做。当我运行“which mysql”时,我收到一条消息,提示 /usr/bin 目录中没有 MySQL 可执行文件。我可以验证 MySQL 是否正在运行,因为我的网站仍然运行正常,当我运行命令测试 MySQL 时,我收到一条消息说“MySQL 工作!”

我在几个目录中找到 MySQL 文件,但我不确定我在寻找什么以及找到它时如何连接到它。我也不确定这是否是用户错误,或者是否有人以某种方式移动或隐藏了 MySQL——可能是用户错误??

【问题讨论】:

运行find / -iname 'mysql'会得到什么 我认为最好把这个问题交给服务器故障或超级用户。 【参考方案1】:

如果您的服务器上已启动并运行 MySQL 服务器,这并不意味着您在此服务器上安装了 MySQL 客户端。

试试

ls -l /usr/bin/mysql*

您是否看到系统上完全存在 MySQL 二进制文件?

还有一个问题:当您为另一种架构运行二进制文件时,Linux 会出现非常奇怪的行为。

例如,如果您在 64 位系统上运行 32 位可执行文件,您将收到类似“找不到命令或文件”的错误消息,即使二进制文件确实存在!

【讨论】:

【参考方案2】:

一个 MySQL server 不是一个 MySQL client

通过执行以下命令检查 MySQL 是否正在运行:

ps aux | grep mysql | grep -v grep

并安装 MySQL 客户端:

sudo apt-get install mysql-client # Or your distribution command

【讨论】:

【参考方案3】:

虽然 MySQL 正在运行,但如果您无法使用mysql 命令连接到服务器,那么您可能缺少提供软链接:

sudo ln -s /usr/local/mysql/bin/mysqladmin /usr/bin

sudo ln -s /usr/local/mysql/bin/mysql /usr/bin

这应该使您能够连接。

【讨论】:

【参考方案4】:

现在 mysql-client 已更改为 default-mysql-client

因此命令:

sudo apt-get install default-mysql-client

【讨论】:

【参考方案5】:

为了使 MySQL CLI 正常工作或从任何地方访问 mysql 命令,需要执行一组步骤来将其添加到 $PATH 变量中。

首先,打开终端,运行以下命令

echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bash_profile

然后重新加载 Bash 配置文件,运行

. ~/.bash_profile

现在运行,

mysql -u root -p

输入您在安装过程中提供的密码。您应该会看到以下结果:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.23 MySQL Community Server - GPL

【讨论】:

【参考方案6】:

您有时还需要在本地机器上安装 MySQL。这意味着,如果你有一个运行 MySQL Docker 容器的主机,我会遇到奇怪的事情,我需要在主机上安装 mysql-server,而不仅仅是在容器中。

原因是有一个 shell 脚本需要从查询中检查正确的数据库名称。在你的情况下,它可能会有所不同。在您的主机上(甚至可能是您的本地计算机,具体取决于您的设置),如果在 Linux 上,请尝试:

sudo apt-get update && sudo apt-get install mysql-server

然后你就会摆脱

/home/.../some_bash_script.sh: line 123: mysql: command not found

【讨论】:

以上是关于找不到 MySQL - 尝试从命令行访问 MySQL 时出现“找不到命令”错误的主要内容,如果未能解决你的问题,请参考以下文章

解决windows下安装MySQL后,在服务找不到其相关信息的问题

从命令行获取 mysql 列

在 Docker 中找不到 MySQL 的 mysql_config [重复]

从命令行运行 weka - 找不到类 NaiveBayes

MySqllinux下,设置mysql表名忽略大小写

在计算机上的任何地方都找不到 MySQL