我在从AWS到GCE的系统迁移过程中遇到了一个问题,这让我有点沮丧。
我有一个运行在亚马逊网络服务上的ec-2实例,工作和配置都很完美。
问题是,谷歌在一个特别的创业计划中提供了100.000美元的信贷,我公司的首席执行官要求迁移,所以我在这里
我在ubuntu 14.04 LTS实例中运行并几乎完全配置了所有内容,我说几乎是因为我不能完成像连接到Mysql数据库这样的简单任务,而且我认为我在某个地方遗漏了一些东西,我的大脑变得混乱,所以我需要你的帮助。
首先,我只在远程服务器上遇到了这个问题,我已经在本地测试了上百次,当然还有aws,它目前处于生产状态,所以我不知道问题到底在哪里。
我的GCE配置:
操作系统: Ubuntu 14.04 LTS HHD: 30 GB持久性ssd硬盘CPU : 2x RAM :7.5 GB专区: europe-west1-c静态Ip
所以,我安装了Lamp和phpmyadmin,所有的工作都很出色。我禁用了从远程客户端到Mysql数据库的root访问,配置了php和apache模块。
这个Web应用程序是一个基于PHP(Slim)的Rest Api,正如我刚才所说的,它现在正在AWS上工作。
当我调用不需要从数据库检索任何数据的端点时,它工作得很好,当调用的端点尝试访问数据库时,问题就来了。在这种情况下,请求永远不会响应,它会一直加载,直到我中止请求。这有点奇怪,因为我可以通过phpmyadmin操作所有数据,它以与mysqli相同的方式访问数据库。
如果我检查了日志,上面什么也没有打印出来。只有当我更改"locahost“主机参数时,它才会打印一个日志:"No mysql db on XXX.XXX”(IP)。
config.php文件
define('DB_USERNAME', 'user');
define('DB_PASSWORD', 'pass');
define('DB_HOST', 'localhost');
define('DB_NAME', 'db_name'); DbConnect.php
function connect() {
include_once dirname(__FILE__) . '/Config.php';
// Connecting to mysql database
$this->conn = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
// Check for database connection error
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
/* change character set to utf8 */
if (!$this->conn->set_charset("utf8")) {
echo "Error loading character set utf8: " . $this->conn->error;
}
// returing connection resource
return $this->conn;
}欢迎任何帮助!
发布于 2016-04-25 21:05:25
您是否更改了my.cnf MySQL配置文件中的bind-address参数?这让我有几次被抓住了。默认情况下,Ubuntu14.04中的MySQL只会监听本地主机,而忽略远程连接。
另外,看看这个问题的答案,它可能也会给你一些帮助:Remote Connections Mysql Ubuntu - bind address failed
https://stackoverflow.com/questions/36839566
复制相似问题