使用来自其他IP

时间:2015-10-01 11:03:16

标签: php mysql pdo

您可能都知道,由于网络配置和其他因素,连接到其他服务器ip时,没有连接到localhost或127.0.0.1上的mysql很慢。我发布了这个问题,问我怎样才能更快地在另一台服务器上连接到mysql,现在需要花费一秒多的时间才能使用我在下面显示的php中的pdo连接到mysql

<?php
$config = require_once $_SERVER['DOCUMENT_ROOT'] . '/include/config.php';

// PDO Connection
try {
    $dns = "mysql:host=".$config['database']['host'].";dbname=".$config['database']['name']."";
    $pdo = new PDO($dns, $config['database']['username'], $config['database']['password']);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $ex) {
    exit('Unable to connect to the master database!');
}
?>

使用127.0.0.1时甚至不需要100毫秒,当连接到另一台服务器上的mysql时,有没有办法让它恢复到那个状态?由于主服务器上的ddos攻击以及数据丢失的风险,我在另一台服务器上使用了mysql。

2 个答案:

答案 0 :(得分:0)

诀窍&#34; 127.0.0.1与localhost&#34;的解释很简单:IP地址不需要DNS查找。因此,要重现另一个主机的行为,只需使用其IP地址而不是域名。

但是,您必须了解远程主机的网络延迟,这只能通过更改主机本身来消除。我建议您从本地ping远程主机并观察网络延迟。如果它很大 - 最好尝试在附近区域找到托管服务提供商。

答案 1 :(得分:0)

您可能无法进入这种快速模式,但尝试在PDO构造函数中添加PDO :: ATTR_PERSISTENT参数:

$ pdo =新PDO($ dns,$ config [&#39;数据库&#39;] [&#39;用户名&#39;],$ config [&#39;数据库&#39;] [&# 39;密码&#39;],数组(PDO :: ATTR_PERSISTENT =&gt; true));

检查:http://php.net/manual/en/pdo.connections.php