我正在使用AWS Aurora和自动扩展组来基于CPU添加/删除数据库从站。一天几次,我收到“常规错误:2006 MySQL服务器已消失”。我将这个问题缩小为以下事实:从自动伸缩组中删除数据库时,会引发此异常。我将local.xml文件中的只读群集终结点用作核心读取选项。
关于如何解决此问题的任何想法,以便一旦确定数据库不再存在,连接将自动尝试重新连接?
我正在使用Magento 1.9.2.4
答案 0 :(得分:0)
这是我当前的解决方案。我制作了lib / Varien / Db / Adapter / Pdo / Mysql.php的副本,并创建了一个新文件app / code / local / Varien / Db / Adapter / Pdo / Mysql.php。
我这样修改了查询功能。
更改:
$result = parent::query($sql, $bind);
收件人:
$tries = 0;
do {
$retry = false;
try {
$result = parent::query($sql, $bind);
} catch (Exception $e) {
// Check to reconnect
if($tries < 3 && stristr($e->getMessage(), '2006 MySQL server has gone away')) {
$retry = true;
$tries++;
$this->_connection = null; // Kill the current connection to the scaled out db
$this->_connect(); // Reconnect to an available db
} else {
throw $e;
}
}
} while ($retry);