【问题标题】:Cannot find MySQL -- get "command not found" error when trying to access MySQL from command line找不到 MySQL - 尝试从命令行访问 MySQL 时出现“找不到命令”错误
【发布时间】: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'会得到什么
  • 我认为最好把这个问题交给服务器故障或超级用户。

标签: mysql linux shell ssh command


【解决方案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
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2020-06-28
              • 1970-01-01
              • 1970-01-01
              • 2018-04-23
              • 2018-09-14
              • 2023-03-21
              • 1970-01-01
              • 2012-03-20
              相关资源
              最近更新 更多