【问题标题】:Cloud 9 IDE can't connect to databaseCloud 9 IDE 无法连接数据库
【发布时间】:2014-06-21 01:10:55
【问题描述】:

我尝试了很多方法来连接到cloud 9 中的数据库,但我不断收到类似的错误。

这是我的 PHP 代码:

<?php
    // Create connection
    $con=mysqli_connect($IP, "$C9_USER", "", "c9");

    //(host,username,password,dbname)<- guide for me

    // Check connection
    if (mysqli_connect_errno()) {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
?>

我从 w3schools 获取了基本代码,并将其与解释 Cloud 9 的 mysql 数据库如何工作的文档一起使用:https://docs.c9.io/setting_up_mysql.html


但我似乎无法连接而不会出现以下错误:

Failed to connect to MySQL: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

所以我想知道是否有其他方法可以将套接字更改为 cloud 9 推荐的地址:注意: MySQL socket file can be found in ~/lib/mysql/socket/mysql.sock

【问题讨论】:

  • 好像你错过了什么。用户名和数据库名称是否正确?你是用localhost还是127.0.0.1作为IP?
  • 它说云 9 文档上的主机名是:与您在 Cloud9 上运行的应用程序相同的本地 IP $IP 这就是我正在使用的。我刚刚尝试了您的建议,但也失败了。
  • 你启动数据库了吗?你检查了$IP中的值吗,我认为你需要替换它
  • 是的,这似乎有点令人困惑,确保您已经使用mysql-ctl start 启动了该服务,还可以尝试mysqli_connect($IP.':/lib/mysql/socket/mysql.sock', $C9_USER...) 还检查c9.io/site/blog/2013/05/mysql-for-every-workspace 也在它说没有免费帐户的 mysql 的地方。也许你应该联系支持并说您根本不理解而其他人也不理解,让他们举例说明。当您知道如何连接时,将需要 30 秒。投诉!!!!这些托管的 IDE 99% 的时间都被破坏或处于测试阶段,祝你好运..
  • 检查 c9.io/site/blog/2013/05/mysql-for-every-workspace 上的 cmets 似乎有涉及获取 实际 IP 的解决方案服务器上的服务器和 实际用户名 提供的只是环境变量。如果不在终端中运行代码,您需要获取 实际 的代码,因此 您打开终端 (alt+t),然后键入:echo $IP 然后 echo $C9_USER

标签: php mysql sockets cloud9-ide


【解决方案1】:

感谢Loz Cherone

使用Cloud 9 IDE时,this article中提到的php变量$ID$C9_USER没有定义。

为了检索这些变量以在您的代码中使用,您必须通过按 ALT + T 并输入:
echo $ID
echo $C9_USER 来使用cloud 9 ide 终端

然后将这些值放入 php 代码中的变量中,如下所示:

<?php
    // Create connection
    $IP = "value from terminal";
    $C9_USER = "value from terminal";
    $con=mysqli_connect($IP, $C9_USER, "", "c9");

    //mysqli_connect(host,username,password,dbname); << guideline

    // Check connection
    if (mysqli_connect_errno()) {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
?>

旁注:确保在运行 mysql 代码时已打开数据库。你可以在终端输入mysql-ctl start来开启它。

【讨论】:

  • +1,当你在写我写的 gist.github.com/lcherone/8eae9af33dbc62921e06 ;p
  • 你的意思是$ID还是$IP?您的代码使用 IP,但您回显 ID。
  • 你也可以这样获取变量:$IP = getenv('IP'); $C9_USER = getenv('C9_USER');
猜你喜欢
  • 2017-12-02
  • 1970-01-01
  • 2016-04-11
  • 1970-01-01
  • 2019-11-10
  • 2016-10-05
  • 1970-01-01
  • 1970-01-01
  • 2014-08-20
相关资源
最近更新 更多