龙空技术网

菜鸟的一次主从数据库问题排查

夔牛犇犇 158

前言:

今天小伙伴们对“mysqladmin flushhost”大约比较注重,咱们都需要学习一些“mysqladmin flushhost”的相关内容。那么小编同时在网上搜集了一些对于“mysqladmin flushhost””的相关内容,希望我们能喜欢,姐妹们一起来学习一下吧!

6月6日,也就是昨天,接到研发说RDS上数据库连不上了,让我检查一下。

在用户名和密码都正确的情况下,居然报access denied.

经过反复尝试,确认数据库密码应该是被修改了,遂直接下手改了数据库密码,一连,OK。原本以为到这里就结束了,结果在登录的时候发现还是报错,这次是:ERROR 1129 (HY000): Host 'XXXXXXX' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

这很明显了,是数据库的错误连接次数超了连接被阻塞的结果,想办法将缓存做了flashu hosts之后,问题消失。

但是新的问题又来了,位于RDS上的从库启不了了slave_SQL_Runing的状态一直是NO。

经过排查日志,确定是事务有问题,只能跳过这个事务,从下一个事务开始重新拉主库的数据。

然而,RDS的语法和mysql的还是有区别,

正常mysql跳过错误的事务是:SET GLOBALQ SQL SLAVE_SKIP_COUNTER = 1;

但是RDS上,是用的CALL mysql.rds_skip_repl_error;

因为在RDS上,有很多相关参数是被放置于后台用参数组来管理的,所以RDS上mysql的管理员账号和平常使用的MYSQL是不一样的,就像这个跳过事务,相差还是蛮大的,好在找到了文档,不然还真不知道怎么操作了。

MARK一下,当作复盘了。

标签: #mysqladmin flushhost