AWS Aurora 自动缩放组数据库关闭导致 mysql 服务器消失问题
AWS Aurora auto scaling group db shutdown causing mysql server gone away issue
我正在使用 AWS Aurora 和基于 CPU 的 add/remove 数据库从属的自动扩展组。一天几次,我得到 "General error: 2006 MySQL server has gone away"。我已将此问题缩小为当从自动缩放组中删除数据库时抛出此异常这一事实。我在 local.xml 文件中使用只读集群端点作为核心读取选项。
关于如何解决此问题以便连接在确定数据库不再存在后自动尝试重新连接的任何想法?
我正在使用 Magento 1.9.2.4
这是我目前的解决方案。我复制了 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);
我正在使用 AWS Aurora 和基于 CPU 的 add/remove 数据库从属的自动扩展组。一天几次,我得到 "General error: 2006 MySQL server has gone away"。我已将此问题缩小为当从自动缩放组中删除数据库时抛出此异常这一事实。我在 local.xml 文件中使用只读集群端点作为核心读取选项。
关于如何解决此问题以便连接在确定数据库不再存在后自动尝试重新连接的任何想法?
我正在使用 Magento 1.9.2.4
这是我目前的解决方案。我复制了 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);