【问题标题】:Using MySQL with PHP on Heroku在 Heroku 上使用 MySQL 和 PHP
【发布时间】:2013-02-03 13:04:48
【问题描述】:

如何将我的 MySQL 数据库上传到 Heroku 以用于 PHP 应用程序?我在 Heroku 上找到的唯一文档是:

将 ClearDB 与 PHP 结合使用

从 PHP 连接到 ClearDB 非常简单,只需要解析 CLEARDB_DATABASE_URL 即可连接,如下所示:

<?php
  $url=parse_url(getenv("CLEARDB_DATABASE_URL"));

  $server = $url["host"];
  $username = $url["user"];
  $password = $url["pass"];
  $db = substr($url["path"],1);

  mysql_connect($server, $username, $password);

  mysql_select_db($db);
?>

我不明白如何在没有 SSH 连接的情况下用我的数据填充 ClearDB,或者如何创建数据库或如何连接到它?

【问题讨论】:

    标签: php heroku


    【解决方案1】:

    来自ClearDB's Developer Center FAQ:

    为了将数据导入您的 MySQL 数据库,我们建议您同时使用 mysql 命令行客户端和 mysqldump 数据库备份实用程序。

    假设您有可用的连接信息,请使用本地计算机上的 mysqlmysqldump 实用程序远程直接连接到 ClearDB 并导入数据。这个其他 SO 答案可能会有所帮助:How to copy a Database from one server to another server in PHP?

    您可以在本地使用mysql_dump 导出数据库转储,然后从heroku config 给定用户名/密码/主机信息,您可以在本地使用它们的mysql 实用程序导入到远程主机,所以像这样:

    $ mysqldump --user=db1user --password=db1pass local_database > db.sql  
    $ mysql --host=remote_host --user=db2user --password=db2pass myschema < db.sql
    

    【讨论】:

    • 好的,但它没有告诉我如何连接到 Heroku DB。我知道的方法是通过 SSH 连接到我的虚拟主机并使用 mysql 和 mysqldump。我不知道如何用 Heroku 做到这一点。
    • 我扩展了我的答案,希望能够为您指明正确的方向。你在这里绕过 Heroku
    • 在这种情况下您不需要使用 SSH,因为您的 ClearDB 数据库可以从您自己的计算机直接通过 Internet 访问,而不仅限于 localhost。
    • 如何获取 remote_host 的值(是否使用 heroku 配置?)以及如何设置 db2user 和 db2pass 的值?
    • 所有这些值都在 CLEARDB_DATABASE_URL 配置变量中,当您添加 ClearDB 插件时,它应该已自动添加到您的应用程序中。 $ heroku config | grep CLEARDB_DATABASE_URL 格式为用户名:密码@host
    猜你喜欢
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    • 2015-01-17
    • 2012-09-21
    • 2013-02-13
    • 1970-01-01
    相关资源
    最近更新 更多