mysql-proxy使用中的问题
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使用中的问题的更多相关文章
- MySQL Proxy
最近翻看了mysql proxy的资料,特发上来. mysql proxy的推荐使用方式是采用配置文件来完成,当前在命令行的执行如下:mysql-proxy -P 192.168.1.101:3306 ...
- [转载] 使用MySQL Proxy解决MySQL主从同步延迟
原文地址:http://koda.iteye.com/blog/682547 MySQL的主从同步机制非常方便的解决了高并发读的应用需求,给Web方面开发带来了极大的便利.但这种方式有个比较大的缺陷在 ...
- 使用MySQL Proxy解决MySQL主从同步延迟
MySQL的主从同步机制非常方便的解决了高并发读的应用需求,给Web方面开发带来了极大的便利.但这种方式有个比较大的缺陷在于MySQL的同步机制 是依赖Slave主动向Master发请求来获取数据的, ...
- WindowsServer2008配置MySql Proxy
WIndowsServer2008配置MySql Proxy: 1.MySql Proxy的下载地址:http://dev.mysql.com/downloads/mysql-proxy/,选择Win ...
- MysqL读写分离的实现-Mysql proxy中间件的使用
为什么要架设读写分离,这里不做多余的说明,想了解具体原理,请百度或者参考其他帖子.在这里只做大概的配置说明,测试中使用三台服务器 192.168.136.142 主服务器 192.168.136. ...
- mixer: 一个用go实现的mysql proxy
介绍 mixer是一个用go实现的mysql proxy,支持基本的mysql代理功能. mysql的中间件很多,对于市面上面现有的功能强大的proxy,我主要考察了如下几个: mysql-proxy ...
- Mysql读写分离方案-MySQL Proxy环境部署记录
Mysql的读写分离可以使用MySQL Proxy和Amoeba实现,其实也可以使用MySQL-MMM实现读写分离的自动切换.MySQL Proxy有一项强大功能是实现"读写分离" ...
- 使用mysql proxy对数据库进行读写分离
服务器安排如下: 192.168.100.128 主 192.168.100.129 从 192.168.100.130 mysql-proxy 1.在100.130中下载安装mysql-proxy ...
- 使用MySQL Proxy和MySQL Replication实现读写分离
MySQL Replication可以将master的数据复制分布到多个slave上,然后可以利用slave来分担master的读压力.那么对于前台应用来说,就要考虑如何将读的压力分布到多个slave ...
- mysql proxy代理安装和配置
mysql proxy代理安装和配置 服务器说明: 192.168.1.219 mysql主库(主从复制) 192.168.1.177 mysql从库(主从复制) 192.168.1.202 ...
随机推荐
- OC 07 类的扩展
1.NSDate的使用 NSDate是Cocoa中⽤于处理⽇期和时间的基础类,封装了某⼀给定的时刻(含日期,时间,时区) 注意NSLog(@“%@”,nowDate);⽆论你是哪个时区的时间,打印时总 ...
- 微信支付之SHA256签名失败
在接微信支付的时候,或多或少会遇到签名失败,本人接入的时候也遇了不少次: 总结如下: 1.参数没有经过ASCII排序 2.参数包含中文未经过UTF-8标准转化加密后的签名不对应(经本人测验:加密算法要 ...
- Python——拼接字符串
Python中可以对字符串进行拼接: 1. 使用字符串拼接运算符: + >>> "Hello" + "World" 'HelloWorld' ...
- linux命令(34):less命令
1.命令格式: less [参数] 文件 2.命令功能: less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会 ...
- HDU-5281
Senior's Gun Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tota ...
- Docker概览
Docker.xmind下载
- 玩转RaspberryPi
step1:烧制树莓派内存卡 可以用[Linux系统烧制]http://www.williamsang.com/archives/1764.html 如果用windows烧制的话,就用Win32 Di ...
- Go语言用mock server模拟调用(httptest)
mock是个好东东, 在大项目或大公司,很实用, 因为很多环境不是随时在开发环境可得的. package main import ( "testing" "net/htt ...
- 解决CentOS7 firefox崩溃问题
现象:我在博客园写随笔的时候插入图片,每次都会崩溃,百度了好久,发现这个方法还挺好用的 在终端敲入如下命令: setsebool -P unconfined_mozilla_plugin_transi ...
- 解决nginx+php二级页面显示空白的问题
迁移官网商城的发现主页的二级界面显示空白页,此https商城网站 后修改nginx配置,显示正常 添加 location ~ [^/]\.php(/|$) { #fastcgi_pass remote ...