MySQL proxy问题的解决方法

2022-11-12 09:19:15
内容摘要
这篇文章主要为大家详细介绍了MySQL proxy问题的解决方法,具有一定的参考价值,可以用来参考一下。 对此感兴趣的朋友,看看idc笔记做的技术笔记!无法通过mysql proxy连接mysql在
文章正文

这篇文章主要为大家详细介绍了MySQL proxy问题的解决方法,具有一定的参考价值,可以用来参考一下。

对此感兴趣的朋友,看看idc笔记做的技术笔记!

无法通过mysql proxy连接mysql在host,password正确的情况下,也会遇到无法连接mysql的情况,可以查查mysql server是不是使用了old_password,检查my.cnf里面是不是有PLAIN TEXTCODE:

代码如下:


old_password = 1 
有的数据库是从老版本升级上来的,所以会开启这个选项,mysql proxy不支持old_password。另外也可以通过查看密码长度的方式来判断:PLAIN TEXTCODE:

代码如下:


select length(password) from mysql.user 
如果长度为16位则是old_password无疑。字符乱码通过proxy连上数据库之后,查到的字符串始终是乱码,即便手工执行了set names 'utf8'也没有效果。解决办法,mysql server必须设置PLAIN TEXTCODE:

代码如下:


[mysqld] 
skip-character-set-client-handshake 
init-connect='SET NAMES utf8' 
default-character-set=utf8 
一台mysql slave当掉之后,mysql proxy会报错导致全部的mysql无法连接安装了mysql proxy实现读写分离,有master x 1, slave x 2。为了测试failover,停掉了一个slave,然后mysql proxy会一直报错,提示无法连接。这个情况比单点的mysql还糟糕,挂掉一个就全挂掉!mysql的工程师给提供了一段代码,替换掉src/network-mysqld-proxy.c的NETWORK_MYSQLD_PLUGIN_PROTO函数可以解决这个问题。代码比较长,直接附上下载地址: network-mysqld-proxy-function.c定期crash 这个问题也很糟糕,mysql proxy经常会自己悄悄的停止工作,所幸时间间隔很长。猜想是有内存泄漏的问题存在,希望以后的版本能解决。我采用的解决办法就是晚上定期重启它。

注:关于MySQL proxy问题的解决方法的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!