Auth: Jin

1.session问题

Date: 20140328
问题描述:
基于openx 的广告系统,将数据从单点,迁移到mmm集群,前端无法访问
报错信息如下:
MDB2 Error: Array

_doQuery: [Error message: Could not execute statement]
[Last executed query: EXECUTE MDB2_STATEMENT_mysql_231aaea2d6a8cace7c73797d81dc6ea8 USING @0]
[Native code: 1243]
[Native message: Unknown prepared statement handler (MDB2_STATEMENT_mysql_231aaea2d6a8cace7c73797d81dc6ea8) given to EXECUTE]
: Could not execute statement]
/data/httpd/htdocs/ad/var/debug.log:[Last executed query: EXECUTE MDB2_STATEMENT_mysql_a0846690c52c0e64d42b7421fcd3e983 USING @0]
/data/httpd/htdocs/ad/var/debug.log:[Native message: Unknown prepared statement handler (MDB2_STATEMENT_mysql_a0846690c52c0e64d42b7421fcd3e983) given to EXECUTE]
/data/httpd/htdocs/ad/var/debug.log:Mar 28 04:29:16 +0000 OX [ error] PEAR :: MDB2 Error: Array : _doQuery: [Error message: Could not execute statement]

解决步骤
1、配置指向原来的单点正常
2、配置指向mmm的master正常
3、判断为通过proxy产生问题

最开始根据报错提示以为是权限问题,全部权限添加确认一次,还一样
根据报错里面那么串字符,感觉是session
/data/httpd/htdocs/ad/lib/pear/MDB2.php

原因:session之能保持到一个ip,无法在多台MYSQL实例之间切换

解决方案:
数据库配置指向mmm的writer vip

2.charset问题

Date: 20140402
问题描述:
线上有一个废弃的mysql实例,昨天停掉了,后开发说虽然前端停掉了,程序中有部分代码用到这个实例中的数据。
dump导出,然后导入mmm,后前端发现是乱码,查看php.conf字符集是latin1,检查mmm中创建表的也是latin1。
原来实例的环境是utf8,表结构CHARSET=latin1,数据是latin1,dump默认是utf8.原来以为没有修改数据,创建表的字符集是latin1,插入的数据就是latin1.

解决步骤:
dump --default-character-set
操作
# mysqldump --default-character-set=latin1 -h 192.168.201.102 -P3308 -udbproxy -ppasswd vcity > ./vcity.sql
# head -n 10 vcity-mmm_20140402.sql |tail -1
/*!40101 SET NAMES latin1 */;
mysql -h127.0.0.1 -P3307 -uroot
SET NAMES latin1
mysql> create vcity;
mysql> use vcity;
mysql> source ./vcity.sql

还是乱码
换个方法导入,导出没问题了
默认为--opt,包含--set-charset=default-character-set,即有/*!40101 SET NAMES latin1 */;
mysql -h127.0.0.1 -P3307 -uroot -ppasswd --default-character-set=latin1 -f vcity <./vcity.sql
-f, --force Continue even if we get an SQL error.
依然是乱码
检查连接方式将mysql-proxy换成连接vip,发现正常了

原因:
proxy字符集问题
proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting-utf8-sync.lua

解决方案:
数据库配置指向mmm的writer vip

总结:
使用mysql-proxy的架构(M-S/NDB)中要注意session,charset的影响。
出现问题的时候按一下步骤排除
1.注意报错信息,最好可以根据报错信息知道问题所在
2.直接将数据库配置指向master(单台),观察情况
3.将数据库配置指向write vip (单台)
4.对比
5.在单台的情况再去具体mysql属性

mysql-proxy使用中的问题的更多相关文章

  1. MySQL Proxy

    最近翻看了mysql proxy的资料,特发上来. mysql proxy的推荐使用方式是采用配置文件来完成,当前在命令行的执行如下:mysql-proxy -P 192.168.1.101:3306 ...

  2. [转载] 使用MySQL Proxy解决MySQL主从同步延迟

    原文地址:http://koda.iteye.com/blog/682547 MySQL的主从同步机制非常方便的解决了高并发读的应用需求,给Web方面开发带来了极大的便利.但这种方式有个比较大的缺陷在 ...

  3. 使用MySQL Proxy解决MySQL主从同步延迟

    MySQL的主从同步机制非常方便的解决了高并发读的应用需求,给Web方面开发带来了极大的便利.但这种方式有个比较大的缺陷在于MySQL的同步机制 是依赖Slave主动向Master发请求来获取数据的, ...

  4. WindowsServer2008配置MySql Proxy

    WIndowsServer2008配置MySql Proxy: 1.MySql Proxy的下载地址:http://dev.mysql.com/downloads/mysql-proxy/,选择Win ...

  5. MysqL读写分离的实现-Mysql proxy中间件的使用

    为什么要架设读写分离,这里不做多余的说明,想了解具体原理,请百度或者参考其他帖子.在这里只做大概的配置说明,测试中使用三台服务器 192.168.136.142   主服务器 192.168.136. ...

  6. mixer: 一个用go实现的mysql proxy

    介绍 mixer是一个用go实现的mysql proxy,支持基本的mysql代理功能. mysql的中间件很多,对于市面上面现有的功能强大的proxy,我主要考察了如下几个: mysql-proxy ...

  7. Mysql读写分离方案-MySQL Proxy环境部署记录

    Mysql的读写分离可以使用MySQL Proxy和Amoeba实现,其实也可以使用MySQL-MMM实现读写分离的自动切换.MySQL Proxy有一项强大功能是实现"读写分离" ...

  8. 使用mysql proxy对数据库进行读写分离

    服务器安排如下: 192.168.100.128 主 192.168.100.129 从 192.168.100.130 mysql-proxy 1.在100.130中下载安装mysql-proxy ...

  9. 使用MySQL Proxy和MySQL Replication实现读写分离

    MySQL Replication可以将master的数据复制分布到多个slave上,然后可以利用slave来分担master的读压力.那么对于前台应用来说,就要考虑如何将读的压力分布到多个slave ...

  10. mysql proxy代理安装和配置

    mysql proxy代理安装和配置 服务器说明: 192.168.1.219   mysql主库(主从复制) 192.168.1.177   mysql从库(主从复制) 192.168.1.202 ...

随机推荐

  1. exit() _exit() 函数区别

    exit(): --stdlib.h (1) 所有使用atexit()注册的函数,将会被以注册相反的顺序调用: (2) 所有打开的输出流被刷新,并且关闭流: (3) 使用tmpfile()创建的文件将 ...

  2. linux命令面试题

    文件管理命令 (1)Linux的文件系统目录配置要遵循FHS规范,规范定义的两级目录规范如下:        /home  每个账号在该目录下都有一个文件夹,进行数据的管理        /usr 有 ...

  3. 图论-最近公共祖先-离线Tarjan算法

    有关概念: 最近公共祖先(LCA,Lowest Common Ancestors):对于有根树T的两个结点u.v,最近公共祖先表示u和v的深度最大的共同祖先. Tarjan是求LCA的离线算法(先存储 ...

  4. C++中多线程与Singleton的那些事儿

    前言 前段时间在网上看到了个的面试题,大概意思是如何在不使用锁和C++11的情况下,用C++实现线程安全的Singleton. 看到这个题目后,第一个想法就是用Scott Meyer在<Effe ...

  5. Aspxgridview 根据条件来自定义计算Totalsummery

    protected void ASPxGridView1_CustomSummaryCalculate(object sender, DevExpress.Data.CustomSummaryEven ...

  6. 调用手机端硬件功能 汇总(android/ios) Native.js示例汇总

    Native.js示例汇总 NJS Native.JS 示例 Native.js虽然强大和开放,但很多web开发者因为不熟悉原生API而难以独立完成.这篇帖子的目的就是汇总各种写好的NJS代码,方便w ...

  7. hdu 2147(巴什博弈+NP图)

    kiki's game Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 40000/10000 K (Java/Others)Total ...

  8. 【转载】JAVA多线程和并发基础面试问答

    转载自这里. 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一.在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题.(校对注: ...

  9. 595. Big Countries

    There is a table World +-----------------+------------+------------+--------------+---------------+ ...

  10. Razor 部分页面

    最近在和师父一起打野,后台要求挺多的.后台还是用的EF和MVC5,页面使用的razor. 现在是发现好多的页面有太多重复的东西了. 比如说查询页面的字段,比如说列表页,比如说详情方法都有. 灵机一动, ...