《Mycat学习笔记》 番外篇一.客户端使用latin1字符集,后端MySQL为UTF8字符集,MyCat日志分析。

其实这个番外篇比较无聊——即客户端为lantin字符集,后面MySQL为U8字符集,MyCat在中间到底会起什么作用。

再说下本次验证的环境:

Mac OS 10.11.2

MySQL 5.6

MyCat 1.5

OK,开始我们的验证工作。

1) 由于数据库与操作系统已被默认设置为U8编码,计划通过修改Mysql  “character_set_client” 参数调整客户端字符集配置进行验证。

关于MYSQL字符集较全面的介绍,请参考 《mysql_query("set names gb2312")设置客户端字符集》 传送门

-- 查看当前系统的字符集

SHOW VARIABLES LIKE ‘character%‘;

-- 查看当前客户端字符集

show variables like ‘character_set_client‘;

OK,确认本地客户端字符集为U8后,使用以下命令调为 latin1 (iso8859-1)

set names latin1

2)来看下mycat 日志在 select 的情况,根据下面红色标出的文字内容,推测Mycat每次从Connection Pool获取后端连接时会去自动同步数据库连接字符集,即将本地Client连到Mycat服务的字符集同步至MyCat与MySQL的连接中。

另外MyCat 默认情况使用U8字符集与后端MySQL通信,可以在Release connection步骤中体现。

即默认情况下都使用U8与MySQL交互,客户端可以指定其他的字符。

正常情况下大家都会使用U8,当然也可通过MYCAT server.xml 配置进行调整。

<system> <property name="charset">utf8</property> </system>

01/21 22:25:53.174  DEBUG [$_NIOREACTOR-2-RW] (ServerQueryHandler.java:56) -ServerConnection [id=2, schema=TESTDB, host=127.0.0.1, user=test,txIsolation=3, autocommit=true, schema=TESTDB]select * from t_demo_travel_record

LIMIT 0, 1000

01/21 22:25:53.174  DEBUG [$_NIOREACTOR-2-RW] (EnchachePool.java:70) -SQLRouteCache hit cache ,key:TESTDBselect * from t_demo_travel_record

LIMIT 0, 1000

01/21 22:25:53.175  DEBUG [$_NIOREACTOR-2-RW] (NonBlockingSession.java:113) -ServerConnection [id=2, schema=TESTDB, host=127.0.0.1, user=test,txIsolation=3, autocommit=true, schema=TESTDB]select * from t_demo_travel_record

LIMIT 0, 1000, route={

1 -> dn1{SELECT *

FROM t_demo_travel_record

LIMIT 0, 1000}

2 -> dn2{SELECT *

FROM t_demo_travel_record

LIMIT 0, 1000}

} rrs

01/21 22:25:53.175  DEBUG [$_NIOREACTOR-2-RW] (MultiNodeQueryHandler.java:82) -execute mutinode query select * from t_demo_travel_record

LIMIT 0, 1000

01/21 22:25:53.176  DEBUG [$_NIOREACTOR-2-RW] (MultiNodeQueryHandler.java:97) -has data merge logic

01/21 22:25:53.176  DEBUG [$_NIOREACTOR-2-RW] (PhysicalDBPool.java:452) -select read source hostM1 for dataHost:localhost1

01/21 22:25:53.176  DEBUG [$_NIOREACTOR-2-RW] (MySQLConnection.java:445) -con need syn ,total syn cmd 1 commands SET names latin1;schema change:false con:MySQLConnection [id=11, lastTime=1453386353176, user=mycat1, schema=mycat_db1, old shema=mycat_db1, borrowed=true, fromSlaveDB=false, threadId=13, charset=latin1, txIsolation=3, autocommit=true, attachment=dn1{SELECT *

FROM t_demo_travel_record

LIMIT 0, 1000}, res[email protected]5f81c977, host=localhost, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false]

01/21 22:25:53.177  DEBUG [$_NIOREACTOR-2-RW] (PhysicalDBPool.java:452) -select read source hostM1 for dataHost:localhost2

01/21 22:25:53.177  DEBUG [$_NIOREACTOR-3-RW] (MultiNodeQueryHandler.java:171) -received ok response ,executeResponse:false from MySQLConnection [id=11, lastTime=1453386353165, user=mycat1, schema=mycat_db1, old shema=mycat_db1, borrowed=true, fromSlaveDB=false, threadId=13, charset=latin1, txIsolation=3, autocommit=true, attachment=dn1{SELECT *

FROM t_demo_travel_record

LIMIT 0, 1000}, res[email protected]5f81c977, host=localhost, port=3306, [email protected]1d1d49d, writeQueue=0, modifiedSQLExecuted=false]

01/21 22:25:53.177  DEBUG [$_NIOREACTOR-2-RW] (MySQLConnection.java:445) -con need syn ,total syn cmd 1 commands SET names latin1;schema change:false con:MySQLConnection [id=9, lastTime=1453386353177, user=mycat2, schema=mycat_db2, old shema=mycat_db2, borrowed=true, fromSlaveDB=false, threadId=6, charset=latin1, txIsolation=3, autocommit=true, attachment=dn2{SELECT *

FROM t_demo_travel_record

LIMIT 0, 1000}, res[email protected]5f81c977, host=localhost, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false]

01/21 22:25:53.178  DEBUG [$_NIOREACTOR-3-RW] (DataMergeService.java:94) -field metadata inf:[ID=ColMeta [colIndex=0, colType=3], CONTEXT=ColMeta [colIndex=1, colType=253], SHARDING_ID=ColMeta [colIndex=2, colType=3]]

01/21 22:25:53.179  DEBUG [$_NIOREACTOR-1-RW] (MultiNodeQueryHandler.java:171) -received ok response ,executeResponse:false from MySQLConnection [id=9, lastTime=1453386353165, user=mycat2, schema=mycat_db2, old shema=mycat_db2, borrowed=true, fromSlaveDB=false, threadId=6, charset=latin1, txIsolation=3, autocommit=true, attachment=dn2{SELECT *

FROM t_demo_travel_record

LIMIT 0, 1000}, res[email protected]5f81c977, host=localhost, port=3306, [email protected]3ad876a, writeQueue=0, modifiedSQLExecuted=false]

01/21 22:25:53.179  DEBUG [$_NIOREACTOR-3-RW] (MultiNodeQueryHandler.java:241) -on row end reseponse MySQLConnection [id=11, lastTime=1453386353165, user=mycat1, schema=mycat_db1, old shema=mycat_db1, borrowed=true, fromSlaveDB=false, threadId=13, charset=latin1, txIsolation=3, autocommit=true, attachment=dn1{SELECT *

FROM t_demo_travel_record

LIMIT 0, 1000}, res[email protected]5f81c977, host=localhost, port=3306, [email protected]1d1d49d, writeQueue=0, modifiedSQLExecuted=false]

....

01/21 22:28:52.877 DEBUG [$_NIOREACTOR-2-RW] (PhysicalDatasource.java:403) -release channel MySQLConnection [id=2, lastTime=1453386532857, user=mycat2, schema=mycat_db2, old shema=mycat_db2, borrowed=true, fromSlaveDB=false, threadId=2, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=localhost, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false]
01/21 22:28:59.237 DEBUG [Timer1] (SQLJob.java:85) -con query sql:select user() to con:MySQLConnection [id=7, lastTime=1453386539237, user=mycat2, schema=mycat_db2, old shema=mycat_db2, borrowed=true, fromSlaveDB=false, threadId=4, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=localhost, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false]
01/21 22:28:59.239 DEBUG [Timer1] (SQLJob.java:85) -con query sql:select user() to con:MySQLConnection [id=13, lastTime=1453386539239, user=mycat1, schema=mycat_db1, old shema=mycat_db1, borrowed=true, fromSlaveDB=false, threadId=12, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=localhost, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false]
01/21 22:28:59.239 DEBUG [$_NIOREACTOR-3-RW] (PhysicalDatasource.java:403) -release channel MySQLConnection [id=7, lastTime=1453386539219, user=mycat2, schema=mycat_db2, old shema=mycat_db2, borrowed=true, fromSlaveDB=false, threadId=4, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=localhost, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false]
01/21 22:28:59.240 DEBUG [$_NIOREACTOR-1-RW] (PhysicalDatasource.java:403) -release channel MySQLConnection [id=13, lastTime=1453386539239, user=mycat1, schema=mycat_db1, old shema=mycat_db1, borrowed=true, fromSlaveDB=false, threadId=12, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=localhost, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false]

时间: 2024-12-09 17:52:10

《Mycat学习笔记》 番外篇一.客户端使用latin1字符集,后端MySQL为UTF8字符集,MyCat日志分析。的相关文章

《Mycat学习笔记》 第二篇. MySql 读写分离与日志分析——主从多结点

1    环境说明 接上篇环境   <Mycat学习笔记> 第一篇. MySql 读写分离与日志分析——主从单结点 http://www.cnblogs.com/kaye0110/p/5134588.html 增加一套 mysql 实例,端口为3308 ,通过Binlog方式同步主机情况 localhost : 3306 主机,    在mycat 中配置为 writehost 1 localhost : 3307 从机 a ,在mycat 中配置为 readhost localhost :

MyCat 学习笔记 第十篇.数据分片 之 ER分片

1 应用场景 这篇来说下mycat中自带的er关系分片,所谓er关系分片即可以理解为有关联关系表之间数据分片.类似于订单主表与订单详情表间的分片存储规则. 本文所说的er分片分为两种: a. 依据主键进行数据分片,验证发现主表数据保存在第1个datanode中,子表数据根据分片规则存储. b. 依据分片关键字段进行分片,验证发现主表与子表根据分片规则存储,且保存在相同的分片内. 接下来,可以下实际配置与数据验证 2 环境说明 参考  <MyCat 学习笔记>第六篇.数据分片 之 按月数据分片 

MyCat 学习笔记 第十一篇.数据分片 之 分片事务处理

1 环境说明 VM 模拟3台MYSQL 5.6 服务器 VM1 192.168.31.187:3307 VM2 192.168.31.212:3307 VM3 192.168.31.150:  3307 MYCAT 1.5 服务部署在宿主机上 MYCAT 192.168.31.207 :8806[SQL执行端口] / 9066[管理端口] 2 应用场景 2.0 MYCAT配置 schema.xml <schema name="TESTDB" checkSQLschema=&quo

MyCat 学习笔记 第十一篇.数据分片 之 分片数据查询 ( select * from table_name limit 100000,100 )

1 环境说明 VM 模拟3台MYSQL 5.6 服务器 VM1 192.168.31.187:3307 VM2 192.168.31.212:3307 VM3 192.168.31.150:  3307 MYCAT 1.5 服务部署在宿主机上 MYCAT 192.168.31.207 :8806[SQL执行端口] / 9066[管理端口] 2 应用场景 2.0 MYCAT配置 schema.xml <schema name="TESTDB" checkSQLschema=&quo

MyCat 学习笔记 第十三篇.数据分片 之 通过HINT执行存储过程

1 环境说明 VM 模拟3台MYSQL 5.6 服务器 VM1 192.168.31.187:3307 VM2 192.168.31.212:3307 VM3 192.168.31.150:  3307 MYCAT 1.5 服务部署在宿主机上 MYCAT 192.168.31.207 :8806[SQL执行端口] / 9066[管理端口] 2 应用场景 2.0 MYCAT配置 schema.xml <schema name="TESTDB" checkSQLschema=&quo

H5学习_番外篇_PHP数据库操作

1. 文件操作 1.1 打开关闭文件 fopen() resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )? fopen()函数将resource绑定到一个流或句柄.绑定之后.脚本就能够通过句柄与此资源交互; 例1:以仅仅读方式打开一个位于本地server的文本文件 $fh = fopen("test.txt", "r"); 例2

GTK3学习笔记 番外1 在windows下给gtk程序打包

在没有安装gtk环境的windows系统,如何运行你的gtk程序?这需要给gtk程序打包. 这里给gtk程序打包,主要是将程序依赖的dll文件提取并放置在exe的相同目录下以达到目的. 搜索一段时间后找到,对于gtk2程序,一般需要提取这些dll文件: freetype6.dll intl.dll libatk-1.0-0.dll libcairo-2.dll libexpat-1.dll libfontconfig-1.dll libgailutil-18.dll libgdk-win32-2

《Mycat学习笔记》 第三篇. MySql 主从同步异常后,主从切换

1)系统环境说明 MySql 5.5 主从节点 127.0.0.1:3306   主结点,为验证主从切换效果,手动停止服务 127.0.0.1: 3307    从结点 1 127.0.0.1:338     从结点 2 ,为验证主从切换效果,在主结点停止后,新增两个记录. MyCat 1.5 schema.xml 配置 具体配置说明,参考上篇: <Mycat学习笔记> 第二篇. MySql 读写分离与日志分析——主从多结点 <dataHost name="localhost1

3D数学读书笔记——矩阵基础番外篇之线性变换

本系列文章由birdlove1987编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhurui_idea/article/details/25102425 前面有一篇文章讨论过多坐标系的问题.有的人可能会问我那么多坐标系,它们之间怎么关联呢?嘿嘿~这次的内容可以为解决这个问题打基础奥! 线性变换基础(3D数学编程中,形式转换经常是错误的根源,所以这部分大家要多多思考,仔细运算) 一般来说,方阵(就是行和列都相等的矩阵)能描述任意的线性变换,所以后面我们一般用方阵来变