<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Ops运维 | Mr`kang Blog｜小豆子]]></title> 
<link>https://www.cnmysql.com/index.php</link> 
<description><![CDATA[关注服务器运维技术、DB优化、Docker虚拟化、自动化运维、工作积累]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Ops运维 | Mr`kang Blog｜小豆子]]></copyright>
<item>
<link>https://www.cnmysql.com/post/132/</link>
<title><![CDATA[mysql集群、切片、负载均衡、高可用软件Amoeba]]></title> 
<author>kangyang &lt;kangyang315@qq.com&gt;</author>
<category><![CDATA[MYSQL]]></category>
<pubDate>Tue, 23 Sep 2014 09:22:16 +0000</pubDate> 
<guid>https://www.cnmysql.com/post/132/</guid> 
<description>
<![CDATA[ 
	<span style="font-family: 宋体;"><span style="font-size: 12px;"><br/>官方文档：<a href="http://docs.hexnova.com/amoeba/" target="_blank">http://docs.hexnova.com/amoeba/</a><br/>Amoeba软件致力于MySQL的分布式数据库前端代理层，它主要在应用层访问MySQL的 时候充当SQL路由功能，专注于分布式数据库代理层（Database Proxy）开发。座落与 Client、DB Server(s)之间,对客户端透明。具有负载均衡、高可用性、SQL 过滤、读写分离、可路由相关的到目标数据库、可并发请求多台数据库合并结果。 通过Amoeba你能够完成多数据源的高可用、负载均衡、数据切片的功能，目前Amoeba已在很多 企业的生产线上面使用。<br/>架构图：<br/><a href="https://www.cnmysql.com/attachment.php?fid=38" target="_blank"><img src="https://www.cnmysql.com/attachment.php?fid=38" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>Amoeba for Mysql 与MySQL Proxy比较<br/>在MySQL proxy 6.0版本 上面如果想要读写分离并且 读集群、写集群 机器比较多情况下，用mysql proxy 需要相当大的工作量，目前mysql proxy没有现成的 lua脚本。mysql proxy根本没有配置文件， lua脚本就是它的全部，当然lua是相当方便的。那么同样这种东西需要编写大量的脚本才能完成一 个复杂的配置。而Amoeba for Mysql只需要进行相关的配置就可以满足需求。<br/><br/>Amoeba不能做什么？<br/>目前还不支持事务<br/>暂时不支持存储过程（近期会支持）<br/>不适合从amoeba导数据的场景或者对大数据量查询的query并不合适（比如一次请求返回10w以上甚至更多数据的场合）<br/>暂时不支持分库分表，amoeba目前只做到分数据库实例，每个被切分的节点需要保持库表结构一致<br/><br/></span><br/></span><br/>Tags - <a href="https://www.cnmysql.com/tags/amoeba/" rel="tag">amoeba</a> , <a href="https://www.cnmysql.com/tags/%25E5%2588%2587%25E7%2589%2587/" rel="tag">切片</a> , <a href="https://www.cnmysql.com/tags/mysql%25E8%25B4%259F%25E8%25BD%25BD%25E5%259D%2587%25E8%25A1%25A1%25E9%25AB%2598%25E5%258F%25AF%25E7%2594%25A8/" rel="tag">mysql负载均衡高可用</a>
]]>
</description>
</item><item>
<link>https://www.cnmysql.com/post/131/</link>
<title><![CDATA[mysql 数据库 切表脚本]]></title> 
<author>kangyang &lt;kangyang315@qq.com&gt;</author>
<category><![CDATA[MYSQL]]></category>
<pubDate>Tue, 23 Sep 2014 08:46:24 +0000</pubDate> 
<guid>https://www.cnmysql.com/post/131/</guid> 
<description>
<![CDATA[ 
	<span style="font-family: 宋体;"><span style="font-size: 12px;"><br/>mysql切表原理：<br/>1、创建临时表<br/>2、修改源table名称为tablename_$date<br/>3、修改临时表名称为源table名称<br/><br/><div class="code">#!/bin/sh<br/>host=$1<br/>port=$2<br/>host=$&#123;host:=&quot;localhost&quot;&#125;&nbsp;&nbsp;#host没赋值，那么就赋值为localhost<br/>port=$&#123;port:=&quot;3306&quot;&#125;<br/>#schema是数据库名字<br/>schema=$3<br/>echo $host, $port, $schema<br/><br/>#sleep 15<br/>echo &quot;=====bre2.0 archive tables ....&quot;<br/>date &quot;+%F %T&quot;<br/><br/>dater=`date -d &quot;-1 day&quot; &quot;+%Y%m%d&quot;`<br/>exe_sql=&quot;create table Mapping_event_tmp like Mapping_event; rename table Mapping_event to Mapping_event_$dater, Mapping_event_tmp to Mapping_event;&quot;<br/><br/>#如果只传了schema进来， 则只修改该schema下的所有表<br/>if &#91; &quot;$schema&quot; &#93; <br/>then<br/>echo &quot;====&quot;$schema<br/>echo $exe_sql<br/>echo $exe_sql &#124; mysql -h $host -P $port -uusername -ppassword $schema<br/>#如果schema没传则修改该服务器下面的所有表<br/>else <br/>mysql -h $host -P $port -uusername -ppassword -e &quot;show databases like &#039;DMP_GDMP%&#039;;&quot; -N &#124; while read schema<br/>do <br/>echo &quot;====&quot;$schema<br/>echo $exe_sql<br/>echo $exe_sql &#124; mysql -h $host -P $port -uusername -ppassword $schema<br/>done<br/>fi<br/>date &quot;+%F %T&quot;</div><br/>转载：<a href="http://blog.csdn.net/crazyhacking/article/details/12649797" target="_blank">http://blog.csdn.net/crazyhacking/article/details/12649797</a><br/><br/></span><br/></span>
]]>
</description>
</item><item>
<link>https://www.cnmysql.com/post/89/</link>
<title><![CDATA[mysql日常运维常见问题]]></title> 
<author>kangyang &lt;kangyang315@qq.com&gt;</author>
<category><![CDATA[MYSQL]]></category>
<pubDate>Mon, 18 Aug 2014 06:39:05 +0000</pubDate> 
<guid>https://www.cnmysql.com/post/89/</guid> 
<description>
<![CDATA[ 
	<span style="font-size: 12px;"><span style="font-family: 宋体;">问题一：1.远程访问不了或者访问慢的问题<br/>表现：在使用远程连接数据库时偶尔会发生远程连接数据库很慢的问题<br/>解决方法：如果你的mysql主机查询DNS很慢或是有很多客户端主机时会导致连接很慢，由于我们的开发机器是不能够连接外网的，所以DNS解析是不可能完成的，从而也就明白了为什么连接那么慢了。<br/>修改/etc/resolv.conf将DNS服务器删除掉<br/>修改/etc/mysql/my.cnf<br/>[mysqld]下添加<br/>skip-name-resolve就可以解决问题<br/>同时，请注意在增加该配置参数后，mysql的授权表中的host字段就不能够使用域名而只能够使用 ip地址了，因为这是禁止了域名解析的结果<br/><br/>表现：机器不能远程访问<br/>解决方法：出现远程访问不了的问题从两方面入手<br/>1.数据库设置了禁止远程访问<br/>#bind-address=127.0.0.1（去掉注释只能本机访问）<br/>#skip-networking （去掉注释只能本机访问）<br/>2.防火墙的问题<br/>开放数据库端口<br/><br/>问题二：2.myisamchk修复表时报 error 28<br/>表现：myisamchk修复表时报&nbsp;&nbsp; disk is full writing ‘/tmp/SIcDnCMM’(Errcode:28).Waiting for someone to free space…<br/>解决方法：非正常关闭，kill线程都有可能损坏myisam 表,myisamchck 这个工具主要是离线修复myisam表 所以在修复过程中最好是能停掉数据库另外本身myisamchck 这个工具与mysql是相对独立的一个工具，而在服务器上设置tmpdir这个参数 仅仅是对于排序而用到了临时表空间，为什么会提示tmp目录不足 是因为这个工具默认是使用的那个路径.重新指定myisam工具的工作目录<br/><br/>问题三：3.innodb数据文件损坏<br/>表现：130412 17:03:43&nbsp;&nbsp;InnoDB: Error: page 14178 log sequence number 29455369832<br/>InnoDB: is in the future! Current system log sequence number 29455363853.<br/>解决方法：<br/>修改配置文件，添加：innodb_force_recovery = 4<br/>启动数据库后备份数据文件，然后去掉该参数，利用备份文件恢复数据</span></span><br/>Tags - <a href="https://www.cnmysql.com/tags/mysql/" rel="tag">mysql</a> , <a href="https://www.cnmysql.com/tags/myisamchk/" rel="tag">myisamchk</a> , <a href="https://www.cnmysql.com/tags/innodb/" rel="tag">innodb</a>
]]>
</description>
</item><item>
<link>https://www.cnmysql.com/post/82/</link>
<title><![CDATA[MySQLMTOP开源的企业监控系统]]></title> 
<author>kangyang &lt;kangyang315@qq.com&gt;</author>
<category><![CDATA[MYSQL]]></category>
<pubDate>Fri, 08 Aug 2014 06:14:22 +0000</pubDate> 
<guid>https://www.cnmysql.com/post/82/</guid> 
<description>
<![CDATA[ 
	<span style="color: #4B0082;"><span style="font-size: 12px;"><span style="font-family: 宋体;"><br/>网站:<a href="http://www.mtop.cc/" target="_blank">http://www.mtop.cc/</a><br/>在线演示:<a href="http://www.mtop.cc/demo" target="_blank">http://www.mtop.cc/demo</a><br/><br/>MySQL MTOP是一个由Python+PHP开发的开源MySQL企业监控系统。系统由Python实现多进程数据采集和告警，PHP实现WEB展示和管理。MySQL服务器无需安装任何Agent，只需在监控WEB界面配置相关数据库信息，启动监控进程后，即可对上百台MySQL数据库的状态、连接数、QTS、TPS、数据库流量、复制、性能慢查询等进行时时监控。并能在数据库偏离设定的正常运行阀值(如连接异常，复制异常，复制延迟) 时发送告警邮件通知到DBA进行处理。并对历史数据归档，通过图表展示出数据库近期状态，以便DBA和开发人员能对遇到的问题进行分析和诊断。<br/>MySQL MTOP主要功能特性如下：<br/>1.实时 MySQL 可用性监视<br/>数据库可用性监视和衡量让开发者和DBA们了解它们是否符合所承诺的服务水平。<br/>2.实时 MySQL 状态监视和警报<br/>MySQL MTOP 持续监视 MySQL 的基本状态和性能信息，包括数据库连接状态，启动时间，数据库版本，总连接数，活动进程，QPS，TPS，进出MySQL数据库的流量信息。在数据库状态异常或偏离正常基准水平时发出报警邮件通知。<br/>3.实时 MySQL复制监视<br/>MySQL MTOP自动发现您的 MySQL 复制拓扑结构，自动监视数据库的延时和binlog信息，让您可以了解所有 MySQL 主服务器和从服务器的性能、可用性和运行状况。并在问题（如从服务器延迟）导致停机前向管理员提供改正建议。<br/>4.远程监视云中的 MySQL<br/>适合于云和虚拟机的设计，使您能远程监视您的MySQL服务器不需要任何远程代理器。<br/>5.直观管理所有 MySQL 服务器<br/>MySQL MTOP提供一个基于 Web 的界面，可令您全面深入地了解数据库性能、可用性、关键活动等；直观地查看一台服务器、自定义的应用组或所有服务器。一组丰富的实时图形和历史图形将帮助您深入了解详细的服务器统计信息。<br/>6.可视化MySQL慢查询分析<br/>监视实时查询性能，查看执行统计信息，筛选和定位导致性能下降的 SQL 代码。结合使用 Information Schema 可直接从 MySQL 服务器收集数据，无需额外的软件或配置。<br/>7.性能监视<br/>监视影响 MySQL 性能的主要指标。如查询缓存命中率,Key_buffer_read_hits,Key_buffer_write_hits,Thread_cache_hits,Key_blocks_used_rate,Created_tmp_disk_tables_rate等信息，根据相关性能指标可以对服务器核心参数进行调整优化。<br/><br/>安装部署<br/>一、部署LAMP或者LNMP<br/>二、安装python2.7<br/>&nbsp;&nbsp;&nbsp;&nbsp;1、下载<br/>可从 <a href="http://www.python.org/" target="_blank">http://www.python.org/</a>进行下载<br/>#wget <a href="http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2" target="_blank">http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2</a><br/>2、解压<br/>#tar jxvf Python-2.7.2.tar.bz2<br/>3.安装：<br/>#cd Python-2.7.2<br/>#./configure --prefix=/usr/local/Python2.7 --enable-shared<br/>#make<br/>#make install<br/>当出现 libpython2.7.so.1.0的错误时：<br/># ./python<br/>./python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory<br/># /usr/local/Python2.7/bin/python2.7<br/>/usr/local/Python2.7/bin/python2.7: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory<br/>libpython2.7.so.1.0的错误时的 解决办法：<br/>#vi /etc/ld.so.conf 添加/usr/local/Python2.7/lib<br/>#/sbin/ldconfig<br/>#/sbin/ldconfig -v<br/>4.使用新安装的python:<br/>#mv /usr/bin/python /usr/bin/python_old<br/>#ln -s /usr/local/Python2.7/bin/python2.7 /usr/bin/python<br/># python<br/>Python 2.7.2 (default, Dec 29 2013, 13:29:56) <br/>[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2<br/>Type "help", "copyright", "credits" or "license" for more information.<br/>>>> <br/>三、安装 MySQLdb for python<br/>#wget <a href="http://www.mtop.cc/software/MySQLdb-python.zip" target="_blank">http://www.mtop.cc/software/MySQLdb-python.zip</a><br/># unzip MySQLdb-python.zip <br/># cd MySQLdb1-master/<br/># which mysql_config <br/>/usr/local/mysql/bin/mysql_config<br/># vim site.cfg 修改如下：<br/>mysql_config = /usr/local/mysql/bin/mysql_config<br/># python setup.py build<br/># python setup.py install<br/><br/> 常见错误解决：<br/>1).如果编译python出现如下问题<br/>/usr/bin/ld: cannot find -lpython2.7<br/>collect2: ld returned 1 exit status<br/>error: command 'gcc' failed with exit status 1<br/>请按如下步骤处理：<br/>A.检查并安装python-devel包<br/># yum -y install python-devel<br/>B.将libpython2.7.so库文件建立软连接到/usr/lib下<br/>32位服务器下执行<br/># ln -s /usr/local/Python2.7/lib/libpython2.7.so /usr/lib/libpython2.7.so&nbsp;&nbsp;<br/>64位服务器下执行<br/># ln -s /usr/local/Python2.7/lib/libpython2.7.so /usr/lib64/libpython2.7.so <br/>C.检查下/etc/ld.so.conf是否包含/usr/local/Python2.7/lib<br/>#vi /etc/ld.so.conf 添加/usr/local/Python2.7/lib<br/>#/sbin/ldconfig<br/><br/>2).如果python升级到2.7以后出现yum无法使用的情况，错误为No module named yum，请按照如下步骤处理，将yum使用的python版本改为旧版本：<br/>打开yum执行文件<br/># vim /usr/bin/yum<br/>将第一行 #!/usr/bin/python 修改为备份的原python版本即可，如下：<br/>#!/usr/bin/python_old<br/><br/>四、安装MySQLMTOP<br/>注：在安装MySQLMTOP系统之前，请先根据手册内容安装LAMP和Python运行环境。<br/>1.创建监控机数据库并授权<br/>1.1 监控机创建监控数据库，并授予权限,导入SQL文件<br/>mysql> create database mysqlmtop default character set utf8;<br/>mysql> grant select,insert,update,delete,create on mysqlmtop.* to 'mtop_user'@'localhost' identified by 'password';<br/>mysql> flush privileges;<br/><br/>导入SQL文件夹里的SQL文件(表结构和数据文件)<br/>#mysql -uroot -p mysqlmtop < mysqlmtop.sql<br/>#mysql -uroot -p mysqlmtop < mysqlmtop_data.sql<br/><br/>1.2 对被监控的数据库进行授权<br/>备注：在python采集数据的过程中，需要连接到需要监控的数据库服务器采集数据，我们为了安全考虑，在WEB管理里面只要求录入主机和端口，没有录入账号和密码。所有需要监控的数据库请授予相同的用户密码记录在配置文件中。授权如下所示：<br/>grant select,super,process on *.* to 'monitor'@'ip' identified by 'monitor';<br/><br/>2.安装数据采集和报警系统<br/>2.1下载软件安装包并解压，通过FTP或SSH传输工具将目录mysqlmtop上传至服务器/usr/local/下面<br/>2.2修改监控系统配置文件<br/># cd /usr/local/mysqlmtop/<br/># vim etc/config.ini <br/>###监控机MySQL数据库连接地址###<br/>[monitor_server]<br/>host="localhost"<br/>port=3306<br/>user="mtop_user"<br/>passwd="password"<br/>dbname="mysqlmtop"<br/><br/>###被监控MySQL数据库的用户密码###<br/>[mysql_db]<br/>username="monitor"<br/>password="monitor"<br/><br/>###邮件报警服务器地址###<br/>[mail_server]<br/>mail_host="smtp.126.com"<br/>mail_user="alarm@126.com"<br/>mail_pass="password"<br/>mail_postfix="126.com"<br/><br/>###Linux系统资源监控###<br/>[linux_server]<br/>server_ip=""<br/>2.3授予可执行文件执行权限<br/># chmod a+x&nbsp;&nbsp;*.py <br/># chmod a+x&nbsp;&nbsp;*.sh <br/># chmod a+x&nbsp;&nbsp;mtopctl<br/># ln -s /usr/local/mysqlmtop/mtopctl /usr/local/bin/<br/>2.4 测试MySQL连接(可选)<br/>提示MySQLDB OK即为正常状态。<br/># ./test_mysql.py <br/>MySQLDB OK!<br/> <br/>2.5启动监控系统(注意：只有监控进程运行时系统才会进行监控和报警)<br/># mtopctl&nbsp;&nbsp;start<br/><br/>2.6.使用--help查看监控系统进程管理参数<br/>[root@mysqlmtop]# mtopctl --help<br/>mysql mtop help:<br/>support-site:<a href="http://www.mtop.cc&nbsp;&nbsp;www.ruzuojun.com" target="_blank">www.mtop.cc&nbsp;&nbsp;www.ruzuojun.com</a><br/>====================================================<br/>start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start mysql mtop monitor server; Command: #mtopctl start<br/>stop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stop mysql mtop monitor server; Command: #mtopctl stop<br/>status&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Check mysql mtop monitor run status; Command: #mtopctl status<br/><br/>3..安装WEB管理界面<br/>3.1通过FTP或SSH传输工具将frontweb下的所有文件上传至服务器WEB服务器根目录。<br/>3.2打开application&#92;config&#92;database.php文件，修改PHP连接监控服务器的数据库信息<br/>$db['default']['hostname'] = 'localhost';<br/>$db['default']['username'] = 'mtop_user';<br/>$db['default']['password'] = 'password';<br/>$db['default']['database'] = 'mysqlmtop';<br/>$db['default']['dbdriver'] = 'mysql';<br/>3.3通过浏览器输入IP地址或域名，例如<a href="http://localhost" target="_blank">http://localhost</a>打开监控界面，即可登录系统.<br/>默认管理员账号密码admin/admin 登录后请修改密码，增加普通账号<br/><br/> 常见错误解决：<br/>1、<br/>[root@ mysqlmtop]# ./test_mysql.py <br/>Traceback (most recent call last):<br/>&nbsp;&nbsp;File "./test_mysql.py", line 6, in <module><br/>&nbsp;&nbsp;&nbsp;&nbsp;import MySQLdb<br/>&nbsp;&nbsp;File "/usr/local/lib/python2.7/site-packages/MySQL_python-1.2.4-py2.7-linux-x86_64.egg/MySQLdb/__init__.py", line <br/>19, in <module><br/>&nbsp;&nbsp;&nbsp;&nbsp;import _mysql<br/>ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory<br/>解决办法<br/>[root@ mysqlmtop]# find / -name libmysqlclient.so.18<br/>/usr/local/mysql/lib/libmysqlclient.so.18<br/>[root@ mysqlmtop]# vi /etc/ld.so.conf<br/>末行添加/usr/local/mysql/lib<br/>[root@ mysqlmtop]# ldconfig<br/>[root@ mysqlmtop]# ldconfig -v &#124; grep libmysqlclient<br/><br/>2、LNMP环境下登陆web提示404解决办法<br/>&nbsp;&nbsp; 1.Nginx增加rewrite规则：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;location / &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try_files $uri $uri/ /index.php;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp; 2、修改配置<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 修改frontweb/application/config/config.php<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$config['uri_protocol'] = 'REQUEST_URI';<br/>3、web访问慢加载google字体样式解决办法<br/>360网站卫士最新服务：前端公共库、Google公共库以及Google字体库<br/>地址：<a href="http://libs.useso.com" target="_blank">http://libs.useso.com</a><br/>grep fonts.googleapis.com -rl /usr/local/webmtop<br/>sed -i "s/fonts.googleapis.com/fonts.useso.com/g" file&nbsp;&nbsp; <br/>&nbsp;&nbsp; </span></span></span>
]]>
</description>
</item><item>
<link>https://www.cnmysql.com/post/80/</link>
<title><![CDATA[MySQL多字节字符集造成主从数据不一致问题  ]]></title> 
<author>kangyang &lt;kangyang315@qq.com&gt;</author>
<category><![CDATA[MYSQL]]></category>
<pubDate>Thu, 07 Aug 2014 08:42:14 +0000</pubDate> 
<guid>https://www.cnmysql.com/post/80/</guid> 
<description>
<![CDATA[ 
	<span style="font-size: 12px;"><span style="font-family: 宋体;">症状：1、主从延迟Seconds_Behind_Master: 83676<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、主从表双据不一致（从库表总行数>主库表总行数）<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3、从库卡Relay_Log_Pos点不动<br/>分析：1、利用mysqlbinlog查看binlog的sql语句，查看dump出的文件pos点的sql语句是十六进制的。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、核对主从的数据，从库莫名多了好多条数据，而且某个表的字段为null，但是主的表字段没有为null的<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>总结<br/>该问题主要的原因在于MySQL的两种不同的Item在处理字符串转整型的方法不一致，Item_param通过类似于atoi的形式，直接把字符中的数字通过-'0'转换到整型，而Item_hex_string则通过强制内存转化所得，这两种方式都合理，但是两边没有统一，造成replication出错，MySQL从5.1版本后到目前MySQL5.5的版本中都存在该问题(MySQL5.6没有测试过，应该也存在该问题)。解决方法：<br/>1、服务端使用utf8字符集编码(由于前面时gbk,改成utf8会出现乱码等很多问题)<br/>2、更改应用不对int字段进行非int数据的插入<br/>3、更改应用不使用prepare statement<br/>4、binlog的format设置成row格式<br/><br/>参考：<a href="http://backend.blog.163.com/blog/static/20229412620133274030845/" target="_blank">http://backend.blog.163.com/blog/static/20229412620133274030845/</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.linuxidc.com/Linux/2011-08/41439.htm" target="_blank">http://www.linuxidc.com/Linux/2011-08/41439.htm</a></span></span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
]]>
</description>
</item>
</channel>
</rss>