使用PHP连接到MYSQL失败(+ Swift)

时间:2015-06-09 03:31:55

标签: php mysql swift

我正在尝试连接到mysql数据库,但由于某种原因,它无法建立连接。我想要完成的是使用Swift从应用程序发送/接收数据并注册用户。 This is the tutorial我经历过的。我得到的错误(当我访问domain.com/script.php时)是:

  

异常'异常',消息'无法与之建立连接       数据库'在/root/blinddate/MySQLDao.php:21堆栈跟踪:#0       /root/blinddate/script.php(15):MySQLDao-> openConnection()#1 {main}

(script.php需要Connection.php& MySQLDao.php个文件。

我怀疑,这是我在Connection.php中使用的输入,但是对我来说一切似乎都很好。

Connection.php

<?php

class Conn {
   public static $dbhost = "vps123123.ovh.net";
   public static $dbuser = "root";
   public static $dbpass = "dbpassword";
   public static $dbname = "Test";
  }
?>
  

$ dbhost =我使用mysql > SHOW VARIABLES WHERE Variable_name = 'hostname';并且它给了我vps123123.ovh.net所以我使用了那个。

     

$ dbuser =我使用mysql > status并获得Current user: root@localhost。所以,我使用了root

     

$ dbpass =登录mysql时使用的那个。

     

$ dbname =我想要使用的数据库名称。当我使用mysql > SHOW DATABASES;

时,我可以看到它

MySQLDao.php

<?php
 class MySQLDao {
   var $dbhost = null;
   var $dbuser = null;
   var $dbpass = null;
   var $conn = null;
   var $dbname = null;
   var $result = null;

   function __construct() {
   $this->dbhost = Conn::$dbhost;
   $this->dbuser = Conn::$dbuser;
   $this->dbpass = Conn::$dbpass;
   $this->dbname = Conn::$dbname;
 }

public function openConnection() {
   $this->conn = new mysqli($this->dbhost, $this->dbuser, $this->dbpass, $this->dbname);
   if (mysqli_connect_errno())
   echo new Exception("Could not establish connection with database");
 }

 //continues
}
?>

的script.php

<?php
   require("Conn.php");
   require("MySQLDao.php");

3 个答案:

答案 0 :(得分:0)

我相信它是以下之一

1)因为你没有展示你如何使用构造函数以外的类,所以你的类的实例是谁知道状态。

2)外界无法解析为该主机名。在服务器上运行某些东西并不代表远程客户端的方式

3)实际的错误信息会有助于你的错误信息覆盖。

4)my.conf需要调整,bind-address设置为0.0.0.0而不是localhost或127.0.0.1

#4以上需要mysql守护进程restart

5)为用户授予dbname

6)google mysql skip-networking

7)防火墙

8)netstat -tulpen 搜索mysql并查看她是否正在侦听端口3306

答案 1 :(得分:0)

有时root用户不允许与“localhost”以外的主机连接。要允许远程连接,请尝试使用以下

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' 
IDENTIFIED BY 'YOUR_PASS' 
WITH GRANT OPTION;
FLUSH PRIVILEGES;

这将为其他主机启用root。

还要确保使用正确的主机名。您可以使用此命令获取传入请求列表。

select host from information_schema.processlist;

答案 2 :(得分:0)

我的问题是文件权限。我得到了

GET domain.com/script.php 500 (Internal Server Error)

我插入显示错误以查看确切的错误:

ini_set('display_errors', 1);