【问题标题】:Can't connect to MySQL from bash on Heroku for ClearDB无法从 Heroku for ClearDB 上的 bash 连接到 MySQL
【发布时间】:2018-05-02 21:12:54
【问题描述】:

我正在尝试通过 mysql 访问 Heroku 上的 ClearDB MySQL 数据库。

我正在使用 Cloud9 访问 Heroku 并推送我的代码。我已经按照 Heroku 的“入门”指南设置了 ClearDB MySQL Ignite。我尝试运行的应用程序有一些脚本来设置数据库,我已经通过 Heroku 的 bash 运行它们,并且数据库已创建,当我访问我的应用程序时,我可以看到它们正在工作,但有些我无法获得mysql 来自 Heroku 的 bash 提示符的提示符。

我正在使用本指南来访问 mysql 提示符 How to use Mysql commands with ClearDB in Heroku?

我收到以下错误:

bash: mysql: command not found

我该如何解决这个问题?

【问题讨论】:

    标签: heroku cleardb


    【解决方案1】:

    为什么mysql 不在 Heroku 的 shell 上工作?

    Heroku dynos 包含您的 application slug 和其他一些东西。它们更像是 Docker 容器,而不是传统的服务器。如果您想在您的应用程序中使用某些东西,包括通过一次性 dynos,例如您通过 heroku run bash 获得的那种,您需要确保它包含在您的 slug 中。

    mysql 命令行客户端默认不可用。

    我应该将mysql 添加到我的 slug 中吗?

    我不会推荐它。

    将您的 slug 视为运行应用程序的包,而不是完整的服务器。包括运行应用程序所需的内容(例如数据库,适用于您使用的任何语言)并排除无关的内容。

    值得注意的是,蛞蝓有一个maximum size

    那我怎样才能访问我的数据库呢?

    不要在 Heroku 上运行 mysql,而是尝试从 Cloud9 终端运行它。只要您使用正确的主机、用户、密码和端口参数,如链接到它的帖子中所述,就应该连接到您的 ClearDB 数据库。

    我设置的测试工作区已经安装了mysql。如果你没有,你应该能够安装它。我的工作区基于 Ubuntu 14.04:

    $ cat /etc/lsb-release 
    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=14.04
    DISTRIB_CODENAME=trusty
    DISTRIB_DESCRIPTION="Ubuntu 14.04.5 LTS"
    

    在那个操作系统上应该可以通过运行安装mysql

    sudo apt-get install mysql-client-5.5
    

    【讨论】:

    • 这个方法中的端口应该是什么。当我们检索 CLEARDB_DATABASE_URL 时,Heroku 没有提供端口
    • 在数据库 URL 中,端口将包含在主机之后,带有冒号,在数据库之前。如果没有给出端口,您可能需要使用默认的 MySQL 端口 3306。最简单的方法是省略端口参数。 mysql 默认使用它。
    • 它工作了,谢谢,但只是想知道为什么我无法从 heroku 的 bash 中获取 mysql 提示符?是因为heroku没有安装mysql吗?
    • @FurrukhJamal,我已经更新了我的答案。如果它回答了您的问题,请记住accept it
    猜你喜欢
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多