我使用PHP和PDO对象连接到mysql。我有3 DB服务器,我的php代码可以连接到。如果我尝试连接到数据库服务器#1并且连接失败,我想立即尝试连接到数据库服务器#2。使用下面的代码,我可以设置的最低连接超时时间是1秒。
$DBH = new PDO("mysql:host=$host;dbname=$dbname", $username, $password,array(PDO::ATTR_TIMEOUT => "1",PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
理想情况下,我想将超时时间设置为<50毫秒。如果可能的话,0毫秒。有什么办法可以做到吗?
这是不可能的,因为底层MySQL驱动程序不允许:
请求#60716:设置PDO连接超时时间(毫秒)的能力
我认为用毫秒来设置超时是不可能的。参考mysql.connect_timeout
的php文档:
mysql.connect_timeout:
连接超时,以秒为单位。在Linux上,此超时也用于等待来自服务器的第一个应答。
顺便说一句,我觉得你要做的事情听起来有点粗俗对我来说。如果您有专业需求,我会使用负载平衡器。您可以遵循本教程