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

MYSQL
怎样可以在Windows上安装多个Mysql
详细讲解MySQL数据库中的安全配置步骤
解析mysql 8小时空闲后连接超时的问题
一起从基础入手来打开MySQL数据库之门
MySQL数据库中的Show命令具体用法
怎样在MySQL的数据库中定义外键详解
MySQL数据库用户帐号管理基础知识详解
MySQL从旧的版本升级为新的版本全攻略
用Tomcat和MySQL生成动态内容详解
讲解查看MySQL数据库错误码的三个方法
数据库经验:如何简单安装MySQL数据库
MySQL数据库双机热备的配置方法详解
在SUSE10下安装和配置MySQL数据库
MySQL数据库本地备份和双机相互备份
MySQL数据库常见的出错代码及出错信息
带你轻松玩转MySQL数据库的异常处理
用实例管理器轻松管理多个MySQL实例
MySQL性能调整之my.cnf文件的配置方法
Replace INTO与INSERT INTO的不同之处
循序渐进讲解MySQL数据库的性能调整

MYSQL 中的 mysql proxy问题


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

最近试用mysql proxy,遇到若干问题,好在一一找到了解决方案,列出来备忘。这次使用的版本是0.6.x,也许新版本就没有这些问题了。

无法通过mysql proxy连接mysql

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

PLAIN TEXT
CODE:
  1. old_password = 1

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

PLAIN TEXT
CODE:
  1. select length(password) from mysql.user

如果长度为16位则是old_password无疑。

字符乱码

通过proxy连上数据库之后,查到的字符串始终是乱码,即便手工执行了set names 'utf8'也没有效果。

解决办法,mysql server必须设置

PLAIN TEXT
CODE:
  1. [mysqld]
  2. skip-character-set-client-handshake
  3. init-connect='SET NAMES utf8'
  4. 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.cNETWORK_MYSQLD_PLUGIN_PROTO函数可以解决这个问题。

代码比较长,直接附上下载地址: network-mysqld-proxy-function.c

定期crash

这个问题也很糟糕,mysql proxy经常会自己悄悄的停止工作,所幸时间间隔很长。猜想是有内存泄漏的问题存在,希望以后的版本能解决。

我采用的解决办法就是晚上定期重启它。