我正在尝试连接到 mysql 数据库,但由于某种原因,它无法建立连接。我想要完成的是使用 Swift 从应用程序发送/接收数据并注册用户。 This is the tutorial我经历过的。我得到的错误(当我去 domain.com/script.php 时)是:
exception 'Exception' with message 'Could not establish connection with database' in /root/blinddate/MySQLDao.php:21 Stack trace: #0 /root/blinddate/script.php(15): MySQLDao->openConnection() #1 {main}
(script.php 需要 Connection.php
和 MySQLDao.php
文件。
我怀疑这是我在 Connection.php 中使用的输入,但对我来说一切似乎都很好。
连接.php
<?php
class Conn {
public static $dbhost = "vps123123.ovh.net";
public static $dbuser = "root";
public static $dbpass = "dbpassword";
public static $dbname = "Test";
}
?>
$dbhost = I used
mysql > SHOW VARIABLES WHERE Variable_name = 'hostname';
and it gave mevps123123.ovh.net
so I used that one.$dbuser = I used
mysql > status
and getCurrent user: root@localhost
. So, I usedroot
.$dbpass = The one I use when logging in mysql.
$dbname = Database name that I want to use. I can see it when I use
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
}
?>
脚本.php
<?php
require("Conn.php");
require("MySQLDao.php");
最佳答案
我认为是以下之一
1) 因为你没有展示你是如何使用构造函数以外的类的,所以你的类实例处于谁知道的状态。
2) 外部世界无法解析到该主机名。在服务器上运行某些东西并不代表远程客户端将如何运行
3) 实际的错误消息会有所帮助,而不是覆盖您的错误消息。
4) my.conf 需要调整 bind-address
设置为 0.0.0.0 而不是 localhost 或 127.0.0.1
以上 #4 需要 mysql 守护进程 restart
5) 授予用户对 dbname 的权限
6) 谷歌 mysql 跳过网络
7)防火墙
8) netstat -tulpen
搜索mysql,看她是否监听3306端口
关于php - 使用 PHP 连接到 MYSQL 失败 (+Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30722547/