我们的组织目前正在过渡到 Windows Azure 中的 Linux VM,为我们的客户提供各种网站服务。根据 Azure 文档中的建议,我们在 ClearDB 上设置了一个 mysql 数据库,我们希望它能够保存上述网站的数据。
问题是,我根本无法让我们的站点代码与clearDB 进行通信。
<小时/>编辑
从虚拟机上的 MYSQL 命令行连接确实有效,我们可以使用与站点相同的凭据浏览数据库,但 php 仍然无法访问数据。
<小时/>我们正在运行 php/codeigniter 作为网站的后端,并且在我的网站本地副本中一切正常,但在部署到 azure 时数据库连接总是失败。
我已在 azure 虚拟机上安装了 tcptraceroute,并且能够在端口 3306 上成功 ping 通 ClearDB 计算机,因此它对虚拟机绝对可见,但由于某种原因对站点不可见。
下面是我的 codeigniter 数据库配置,它在我的本地计算机上的 apache 下运行得很好。
$active_group = "live";
$active_record = TRUE;
$db['live']['hostname'] = "eu-cdbr-azure-north-a.cloudapp.net";
$db['live']['username'] = "<<USER>>";
$db['live']['password'] = "<<PASSWORD>>";
$db['live']['database'] = "<<DB NAME>>";
$db['live']['dbdriver'] = "mysql";
$db['live']['dbprefix'] = "";
$db['live']['pconnect'] = TRUE;
$db['live']['db_debug'] = TRUE;
$db['live']['cache_on'] = FALSE;
$db['live']['cachedir'] = "";
$db['live']['char_set'] = "utf8";
$db['live']['dbcollat'] = "utf8_general_ci";
$db['live']['swap_pre'] = '';
$db['live']['autoinit'] = TRUE;
$db['live']['stricton'] = FALSE;
有谁知道,首先,是否可以从 Azure VM 使用clearDB 来提供数据服务(注意不是 Azure 网站 - 我知道这是可能的),其次,你到底是如何设置它的?
谢谢!
最佳答案
已解决 - 我们的 apache 配置不正确,设置:
/usr/sbin/setsebool httpd_can_network_connect 1
解决了问题
关于codeigniter - 将我的 Azure Linux VM 连接到 clearDB MySQL 数据库的步骤是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16197295/