登录
首页 >  数据库 >  MySQL

实践案例丨Pt-osc工具连接rds for mysql 数据库失败

来源:SegmentFault

时间:2023-02-24 13:08:35 149浏览 收藏

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是数据库学习者,那么本文《实践案例丨Pt-osc工具连接rds for mysql 数据库失败》就很适合你!本篇内容主要包括实践案例丨Pt-osc工具连接rds for mysql 数据库失败,希望对大家的知识积累有所帮助,助力实战开发!

本文分享自华为云社区《Pt-osc工具连接rds for mysql 数据库失败》,原文作者:云技术搬运工 。

【现象】

主机可以telent 通rds 端口,并且使用mysql-client 连接正常;

如下图所示:使用pt-osc工具连接时,一直没有响应,一直卡在哪里

image.png

等了4-5分钟左右后,会有响应,如下图所示:提示不能连接到x.x.x.x,而这个ip地址查到是备节点的ip。

image.png

【排查】

在rds侧查看任务流如下图:发现pt-osc先连进来执行了一下show full processlist,然后卡了4-5分钟左右。结合上面截图中卡了4-5分钟后客户端的返回看,pt-osc工具先show full processlist得到备库的ip,然后去连接备库了,但是备库由于作为高可用性而做的备份,不直接提供外部服务,所以是连接不上的。

image.png

【解决】

Pt-osc有一个参数:-recursion-method

【type:array; 默认值:processlist,host

用于判断是否存在从库的方式,可以的方式有:

processlist:show processlist;

hosts:show slave hosts

dsn=DSN:DSNs from a table

none:不查找从库】

pt-osc连接时 加上--recursion-method=none 意为不查找从库,就正常了。具体命令为 #pt-online-schema-change --user=root --password=xxxxx --host=xx.xx.xx.xx P=3306,D=xx,t=xx --charset=utf8 --alter="ENFINE=InnoDB" --nocheck-replication-files --alter-foreign-keys-method=auto --recursion-method=none --execute。

【总结】

Pt-osc工具连接数据库时会先通过sql得到备库的ip,然后连接备库。但是我们rds的备库是无法连接的,因此会卡住。而连接单机类型的rds for mysql 则正常。

点击关注,第一时间了解华为云新鲜技术~

今天带大家了解了MySQL、工具、数据库、rds的相关知识,希望对你有所帮助;关于数据库的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>