【复制】【编码】MySQL复制中的编码问题

编码背景知识

Latin-1,全称ISO 8859-1 Latin 1 对ASCII的拉丁语扩展 向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。

ASCII   没啥好说的 0x00 – 0x7f 地球人都会查表

GBK:查表 http://ff.163.com/newflyff/gbk-list/

UTF8编码:Unicode表的一种落地实现 (包括传输<大小端>,字节存储,解释等)

记住 : GBK 如果想转换成UTF8 , 是没有二进制规律的,一般都是通过 
GBK 查表  --à Unicode对应坑 -à 按照规则变成- : UTF8 。

Unicode:记住在Unicode字符表中,每种语言的每个文字都占了一个坑 。Unicode编码由两个字节(常用够了)或四个字节(甲骨文之类)来表示。

UNICODE到UTF-8的转换就是

1 先确定编码所需要的UTF-8编码字节数

2 然后用UNICODE编码位从低位到高位依次按规则填入空位,不足的高位以0补充

1. 错误‘Incorrect string value: ‘\xE7\xB3\xBB\xE7\xBB\x9F...‘

Last_Errno: 1366
Last_Error: Error ‘Incorrect string value: ‘\xE7\xB3\xBB\xE7\xBB\x9F...‘ for column ‘content‘ at row 1‘ on query. Default database: ‘ibank‘. Query: ‘update bk_web_close set createTime=‘2014-06-14 14:30:30‘, updateTime=‘2014-08-14 21:02:31‘, version=8, content=‘<div>\r\n 系统升级中,请暂停使用。</div>\r\n‘, status=1 where id=1 and version=7‘

查看binlog:

update bk_web_close set createTime=‘2014-06-14 14:30:30‘, updateTime=‘2014-08-14 21:02:31‘, version=8, content=‘<div>\r\n <E7><B3><BB><E7><BB><9F><E5><8D><87><E7><BA><A7><E4><B8><AD><EF><BC><8C><E8><AF><B7><E6><9A><82><E5><81><9C>
<E4><BD><BF><E7><94><A8><E3><80><82></div>\r\n‘, status=1 where id=1 and version=7
/*!*/;

2. 类似错误

Incorrect string value: ‘\xB2\xE1‘ for column ‘title‘ at row 1‘ on query. Default database: ‘db_puyitou‘. Query: ‘update CM_NEWS set htmlstatus=1, htmlname=0x3230313430373237323435302E68746D, templateid=25, columnid=7, userid=0x61646D696E, subcolumnid=12, title=0xD7A2B2E1, keyword="", description="", source="", content=0x3C703E3C7370616E207374796C653D22464F4E542D46414D494C593A20CBCECCE52C53696D53756E3B20434F4C4F523A20233539353935393B20464F4E542D53495A453A2031347078223EA2D9203C2F7370616E3E3C7370616E207374796C653D22464F4E542D46414D494C593A20CBCECCE52C53696D53756E3B20434F4C4F523A20233539353935393B20464F4E542D53495A453A2031347078223EB5E3BBF7D3D2C9CFBDC7A1BED7A2B2E1A1BFA3ACB8F9BEDDCCE1CABECCEED0B4D7A2B2E1D0C5CFA2A1A33C2F7370616E3E3C2F703E3C703E3C7370616E207374796C653D22464F4E542D46414D494C593A20CBCECCE52C53696D53756E3B20434F4C4F523A20233539353935393B20464F4E542D53495A453A2031347078223ED7A2A3BAD3C3BBA7C3FBD0EBCEAACAD6BBFABAC5A1A33C2F7370616E3E3C2F703E3C70207374796C653D22544558542D414C49474E3A2063656E7465722

查看binlog

update CM_NEWS set htmlstatus=1, htmlname=0x3230313430373237323435302E68746D, templateid=25, columnid=7, userid=0x61646D696E, subcolumnid=12, title=0xD7A2B2E1, keyword="", description="", source="", content=0x3C703E3C7370616E207374796C653D22464F4E542D46414D494C593A20CBCECCE52C53696D53756E3B20434F4C4F523A20233539353935393B20464F4E542D53495A453A2031347078223EA2D9203C2F7370616E3E3C7370616E207374796C653D22464F4E542D46414D494C593A20CBCECCE52C53696D53756E3B20434F4C4F523A20233539353935393B20464F4E542D53495A453A2031347078223EB5E3BBF7D3D2C9CFBDC7A1BED7A2B2E1A1BFA3ACB8F9BEDDCCE1CABECCEED0B4D7A2B2E1D0C5CFA2A1A33C2F7370616E3E3C2F703E3C703E3C7370616E207374796C653D22464F4E542D46414D494C593A20CBCECCE52C53696D53756E3B20434F4C4F523A20233539353935393B20464F4E542D53495A453A2031347078223ED7A2A3BAD3C3BBA7C3FBD0EBCEAACAD6BBFABAC5A1A33C2F7370616E3E3C2F703E3C70207374796C653D22544558542D414C49474E3A2063656E746572223E3C7370616E207374796C653D22464F4E542D46414D494C593A20CBCECCE52C53696D53756E3B20434F4C4F523A20233539353935393B20464F4E542D53495A453A2031347078223E3C2F7370616E3E3C2F703E3C70207374796C653D22544558542D414C49474E3A2063656E746572223E3C7370616E207374796C653D22464F4E542D46414D494C593A20CBCECCE52C53696D53756E3B20434F4C4F523A20233539353935393B20464F4E542D53495A453A2031347078223E3C2F7370616E3E3C2F703E3C70207374796C653D22544558542D414C49474E3A2063656E746572223E3C7370616E207374796C653D22464F4E542D46414D494C593A20CBCECCE52C53696D53756E223E3C7370616E207374796C653D22464F4E542D46414D494C593A20CEA2C8EDD1C5BADA2C4D6963726F736F66742059614865693B20434F4C4F523A20233539353935393B20464F4E542D53495A453A2031347078223E3C696D67207374796C653D2257494454483A2036303070783B204845494748543A20333133707822207469746C653D2233332E504E472220626F726465723D223022206873706163653D223022207372633D22687474703A2F2F3230332E3139352E3230322E37353A383038302F636D2F6A732F75656469746F72315F335F352F6A73702F75656469746F72696D67732F32303134303830372F393431313430373337373631353530382E504E47222077696474683D2236303022206865696768743D22333133222F3E3C2F7370616E3E266E6273703B3C2F7370616E3E3C2F703E3C703E3C7370616E207374796C653D22464F4E542D46414D494C593A20CBCECCE52C53696D53756E3B20434F4C4F523A20233539353935393B20464F4E542D53495A453A2031347078223EA2DA20D7A2B2E1CDEAB3C9A3ACC7EBB8F9BEDDCCE1CABEBDF8D0D0D2F8D0D0BFA8C8CFD6A4A1A33C2F7370616E3E3C2F703E, pubdate=‘2014-08-07 00:00:00‘, begintime=‘2014-07-27 00:00:00‘, endtime=NULL, commend=1 where id=50
/*!*/;

主库中16进制文件对应内容

<p><span style="FONT-FAMILY: 宋体,SimSun; COLOR: #595959; FONT-SIZE: 14px">① </span><span style="FONT-FAMILY: 宋体,SimSun; COLOR: #595959; FONT-SIZE: 14px">点击右上角【注册】,根据提示填写注册信息。</span></p><p><span style="FONT-FAMILY: 宋体,SimSun; COLOR: #595959; FONT-SIZE: 14px">注:用户名须为手机号。</span></p><p style="TEXT-ALIGN: center"><span style="FONT-FAMILY: 宋体,SimSun; COLOR: #595959; FONT-SIZE: 14px"></span></p><p style="TEXT-ALIGN: center"><span style="FONT-FAMILY: 宋体,SimSun; COLOR: #595959; FONT-SIZE: 14px"></span></p><p style="TEXT-ALIGN: center"><span style="FONT-FAMILY: 宋体,SimSun"><span style="FONT-FAMILY: 微软雅黑,Microsoft YaHei; COLOR: #595959; FONT-SIZE: 14px"><img style="WIDTH: 600px; HEIGHT: 313px" title="33.PNG" border="0" hspace="0" src="http://203.195.202.75:8080/cm/js/ueditor1_3_5/jsp/ueditorimgs/20140807/9411407377615508.PNG" width="600" height="313"/></span>&nbsp;</span></p><p><span style="FONT-FAMILY: 宋体,SimSun; COLOR: #595959; FONT-SIZE: 14px">② 注册完成,请根据提示进行银行卡认证。</span></p>

上述两例中binlog中内容均为主库实际内容的utf8编码对应的16进制数。

【复制】【编码】MySQL复制中的编码问题

时间: 2024-10-07 20:51:03

【复制】【编码】MySQL复制中的编码问题的相关文章

vc6.0运用mysql数据库中的编码所导致的乱码问题(接收和输出的编码必须要一致)

[编译中遇见的问题]       ①在用vc 6.0去调用MySQL中的数据时,出现中文乱码       ②不明白mysql中的码制 [开始解决问题]      ①打开mysql控制台        ②开始展示自己        ③打开vc 6.0(配置mysql环境在这里我就不哆嗦了) 走起.....在vc 6.0中复制下列代码,进行连接mysql和调用代码如下: #include <Windows.h>#include <stdio.h>#include <stdlib.

MySQL复制介绍及搭建

MySQL复制介绍 MySQL复制就是一台MySQL服务器(slave)从另一台MySQL服务器(master)进行日志的复制然后再解析日志并应用到自身,类似Oracle中的Data Guard. MySQL复制有那些好处: 第一是解决宕机带来的数据不一致,因为MySQL复制可以实时备份数据: 第二点是减轻数据库服务器的压力,多台服务器的性能一般比单台要好.但是MySQL复制不适合大数据量,大数据量推荐使用集群. MySQL复制过程分成三步: master将改变记录到二进制日志(binary l

涂抹mysql笔记-mysql复制特性

<>mysql复制特性:既可以实现整个服务(all databases)级别的复制,也可以只复制某个数据库或某个数据库中的某个指定的表对象.即可以实现A复制到B(主从单向复制),B再复制到C.也可以实现A直接复制到B和C(单主多从复制),甚至A的数据复制给B,B的数据也复制会A(双主复制) <>mysql复制处理数据时,有三种不同的模式: 1.基于语句复制(Statement Based Replication):基于实际执行的sql语句的模式方案简称SBR 2.基于记录复制(Ro

MYSQL 复制详解

MySql 复制介绍 MySQL复制允许将主实例(master)上的数据同步到一个或多个从实例(slave)上,默认情况 下复制是异步进行的,从库也不需要一直连接到主库来同步数据 MySQL复制的数据粒度可以是主实例上所有的数据库,也可以是指定的一个或多个数据库 ,也可以是一个数据库里的指定的表 MySQL复制所带来的优势在于: 扩展能力:通过复制功能可以将MySQL的性能压力分担到一个或多个slave上.这要求所有 的写操作和修改操作都必须在Master上完成,而读操作可以被分配到一个或多个s

python中的编码与解码

编码与解码 首先,明确一点,计算机中存储的信息都是二进制的 编码/解码本质上是一种映射(对应关系),比如‘a’用ascii编码则是65,计算机中存储的就是00110101,但是显示的时候不能显示00110101,还是要显示'a',但计算机怎么知道00110101是'a'呢,这就需要解码,当选择用ascii解码时,当计算机读到00110101时就到对应的ascii表里一查发现是'a',就显示为'a' 编码:真实字符与二进制串的对应关系,真实字符→二进制串 解码:二进制串与真实字符的对应关系,二进制

java 打印流 递归复制子文件子文件夹 不同编码文件复制到同一文件中 序列化流反序列化流

package com.swift.jinjie; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.PrintStream; /*从键盘输入一个文件夹路径,利用打印流将该文件夹下的所有文件(包括子文件夹)复制到D盘下temp文件夹下.*/ public class PrintAllT

Python&MySQL操作过程中遇到的编码问题

对于Python字符编码的理解 之前整理了一部分,这次主要是设计到数据库操作的. 下面是一些编码方面的概念和原理,以条目方式整理: CREATE DATABASE IF NOT EXISTS db_name DEFAULT CHARSET utf8 COLLATE utf8_general_ci; DEFAULT CHARSET是设置默认字符编码集,也就是数据在库内从存储编码,我的理解是在存储这个层面上的,如果SQL命令是以gbk方式传输数据的(cur.execute('SET NAMES ut

mysql复制过程中的server-id的理解

一.     server-id做什么用的,你知道吗? 1. mysql的同步的数据中是包含server-id的,用于标识该语句最初是从哪个server写入的,所以server-id一定要有的 2. 每一个同步中的slave在master上都对应一个master线程,该线程就是通过slave的server-id来标识的:每个slave在master端最多有一个master线程,如果两个slave的server-id 相同,则后一个连接成功时,前一个将被踢掉. 这里至少有这么一种考虑: slave

GTID!MySQL复制中的核武器

各位老铁们,本周老张的<MySQL王者晋级之路>一书终于出版了,现在可以预购啦!预购链接地址:老张的数据库微店前前后后经历了一年的准备时间,可谓十年磨一剑,把自己从业所有的精华和心血都灌输到其书中.其书中包含了MySQL方方面面的知识点,是之前我的一篇博客"从青铜到王者,快速提升你MySQL数据库段位的全面深入剖析".用一句学生对我说得话,老师喜欢您的王者荣耀情怀,但更喜欢您的技术情操.讲真,不要错过!特别感谢在我从事技术道路上,帮助过我的前辈及兄弟们,这条路上的所有的辛酸