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. 手動設定 電池溫度 mtk platform

    adb root adb shell echo "3 1 27" > ./proc/mtk_battery_cmd/battery_cmd 27 即是所要設定的溫度, 此設定 ...

  2. HTML+CSS+JS(+Vue)写一个通讯录组件

    求各位大大的Star(*/ω\*). 没有录屏,所以上传的是图片.后面已补充录屏效果. 效果:(主要是参考小米Note3的通讯录的效果做的) 主要功能: 1. 滚动后,通讯录的模块标题会固定在顶部(图 ...

  3. tornado 模版

    tornado 模版语法 取消转义 : 取消项目转义 :autoescape = None 取消模版转义:{% autoescape None %} 取消行转义   :{% raw bd %} 强制转 ...

  4. Struts2学习笔记03 之 Result组件

    二.Result原理 1.stream 2.redirectAction 3.Json

  5. Linux下undefined reference to ‘pthread_create’问题解决 zz

    接触了Linux系统编程中的线程编程模块,可gcc sample.c(习惯把书上的sample代码写进sample.c文件中)出现“undefined reference to ‘pthread_cr ...

  6. poj 1579(动态规划初探之记忆化搜索)

    Function Run Fun Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 17843   Accepted: 9112 ...

  7. Decode Ways——动态规划

    A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' - ...

  8. 谈谈对final的理解

    1.final修饰类 类不能被继承,类中的所有方法都是final的 2.final修饰方法 方法不能被覆盖,private修饰的方法隐性的添加了final 3.final修饰方法内参数 方法内的参数不 ...

  9. 一个微服务+DDD(领域驱动设计)的代码结构示例

    前有幸拜读过诸多大神关于DDD的实现落地等文章,学习较多,受益匪浅,在此推荐 : https://www.cnblogs.com/hafiz/p/9388334.htmlhttps://blog.cs ...

  10. 深度学习应用系列(二) | 如何使用keras进行迁移学习,以训练和识别自己的图片集

    本文的keras后台为tensorflow,介绍如何利用预编译的模型进行迁移学习,以训练和识别自己的图片集. 官网 https://keras.io/applications/ 已经介绍了各个基于Im ...