当前位置: 首页 > 图文教程 > 数据库 > MYSQL > mysql proxy问题的解决方法

MYSQL
教你快速掌握如何向MySQL的表中录入数据
linux高负载下彻底优化mysql数据库
编写高质量高性能的MySQL语法
MySQL中与NULL值有关的疑难问题
MySQL数据库搜索中的大小写敏感性
MYSQL:解决主机host_name被屏蔽的现象
MaxDB和MySQL之间的协同性
掌握MaxDB和MySQL之间的特性差异
MySQL数据库所支持的操作系统
Windows XP下PHP+MySQL环境搭建
mysqld_multi单机环境下启动多个mysql
远程使用MySQL GUI工具
数据从MySQL迁移到Oracle的注意事项
MySQL存储程序、函数以及复制的相关问题
MySQL记录未知错误的发生的方法
MySQL数据库复位根用户的密码
MySQL出现1067错误如何解决?
ASP动态网站制作中使用MYSQL的分析
MySQL数据库字符集的出错故障
php教程:mysql数据库操作的DB类

MYSQL 中的 mysql proxy问题的解决方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 92 ::
收藏到网摘: n/a

最近试用mysql proxy,遇到若干问题,好在一一找到了解决方案,列出来备忘。这次使用的版本是0.6.x,也许新版本就没有这些问题了。 无法通过mysql proxy连接mysql
在host,password正确的情况下,也会遇到无法连接mysql的情况,可以查查mysql server是不是使用了old_password,检查my.cnf里面是不是有
PLAIN TEXT
CODE:
复制代码 代码如下:

old_password = 1

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

select length(password) from mysql.user

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

[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经常会自己悄悄的停止工作,所幸时间间隔很长。猜想是有内存泄漏的问题存在,希望以后的版本能解决。
我采用的解决办法就是晚上定期重启它。