AWS Aurora自动缩放组数据库关闭导致mysql服务器消失的问题

时间:2019-03-06 14:47:27

标签: mysql amazon-web-services magento-1.9 amazon-rds-aurora

我正在使用AWS Aurora和自动扩展组来基于CPU添加/删除数据库从站。一天几次,我收到“常规错误:2006 MySQL服务器已消失”。我将这个问题缩小为以下事实:从自动伸缩组中删除数据库时,会引发此异常。我将local.xml文件中的只读群集终结点用作核心读取选项。

关于如何解决此问题的任何想法,以便一旦确定数据库不再存在,连接将自动尝试重新连接?

我正在使用Magento 1.9.2.4

1 个答案:

答案 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);