无法从 Heroku for ClearDB 上的 bash 连接到 MySQL

Can't connect to MySQL from bash on Heroku for ClearDB

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

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

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

我收到以下错误:

bash: mysql: command not found

我该如何解决这个问题?

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

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

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

我应该在 slug 中添加 mysql 吗?

我不推荐它。

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

值得注意的是 maximum size 鼻涕虫。

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

不要在 Heroku 上 运行ning mysql,尝试从您的 Cloud9 终端 运行ning 它。只要您按照 post 中所述为您的主机、用户、密码和端口使用正确的参数,您链接到它就应该连接到您的 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"

在那 OS 上应该可以通过 运行ning

安装 mysql
sudo apt-get install mysql-client-5.5