首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL异常访问的熔断机制

网上搜了下,问题原因就是同一个IP在短时间内产生太多(超过MySQL数据库max_connection_errors的最大值)中断的数据库连接而导致的阻塞,按照他所说的,max_connect_errors是一个MySQL中与安全有关的计数器值,他负责阻止过多尝试失败的客户端以防止暴力破解密码的情况,max_connect_errors的值与性能并无太大关系。这个设计倒是和Oracle中的密码延迟验证功能有些相似,在Oracle中,随着密码输入错误次数,延迟验证时间会逐步增加(可参考《登录缓慢的诡异问题》),同样都是为了防止账号密码被暴力破解。但是Oracle的这个机制可能回导致其他用户受到影响,或者出现严重的library cache lock等问题,而MySQL的机制很彻底,就是让这个IP不能登录,对其他人没影响,不会导致其他的性能问题。

02

MySQL异常访问的熔断机制

网上搜了下,问题原因就是同一个IP在短时间内产生太多(超过MySQL数据库max_connection_errors的最大值)中断的数据库连接而导致的阻塞,按照他所说的,max_connect_errors是一个MySQL中与安全有关的计数器值,他负责阻止过多尝试失败的客户端以防止暴力破解密码的情况,max_connect_errors的值与性能并无太大关系。这个设计倒是和Oracle中的密码延迟验证功能有些相似,在Oracle中,随着密码输入错误次数,延迟验证时间会逐步增加(可参考《登录缓慢的诡异问题》),同样都是为了防止账号密码被暴力破解。但是Oracle的这个机制可能回导致其他用户受到影响,或者出现严重的library cache lock等问题,而MySQL的机制很彻底,就是让这个IP不能登录,对其他人没影响,不会导致其他的性能问题。

01

MySQL中涉及的几个字符集

character-set-server/default-character-set:服务器字符集,默认情况下所采用的。 character-set-database:数据库字符集。 character-set-table:数据库表字符集。 优先级依次增加。所以一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集。 character-set-client:客户端的字符集。客户端默认字符集。当客户端向服务器发送请求时,请求以该字符集进行编码。 character-set-results:结果字符集。服务器向客户端返回结果或者信息时,结果以该字符集进行编码。 在客户端,如果没有定义character-set-results,则采用character-set-client字符集作为默认的字符集。所以只需要设置character-set-client字符集。

02
领券