|
我有M和S两个节点,做了主从,M是主,S是从
现在在S上show slave status发现了一个错误,Error 'Out of range value for column 'PRICE' at row 1' on query. Default database: 'hipiao'. Query: 'INSERT INTO HP_CINEMA_PLAN (ID,PIX_ID,PLAYTIME,PRICE,COMMEND,STATE,HALL_ID,PLAN_ID,PIXLENGTH,DELFLAG,SPRICE,CSTATE,SELLSTATE,PSTATE) VALUES ('5c39b490-45f3-11e0-abcc-001bb97ef1a4',0x34616238383462302D313233382D313165302D383863362D303031393231363431613863,0x323031312D30332D30342031303A31303A3030,0x3430,'0',0x30,0x37323535353865302D393439382D313164662D613830652D303031626239376566316134,0x323939363331,0x3930,'1',0x3430,0x30,0x30,0x30)'
说值超出了字段设置的长度,但问题不在这里,我去主上看binlog,也是记录的'INSERT INTO HP_CINEMA_PLAN (ID,PIX_ID,PLAYTIME,PRICE,COMMEND,STATE,HALL_ID,PLAN_ID,PIXLENGTH,DELFLAG,SPRICE,CSTATE,SELLSTATE,PSTATE) VALUES ('5c39b490-45f3-11e0-abcc-001bb97ef1a4',0x34616238383462302D313233382D313165302D383863362D303031393231363431613863,0x323031312D30332D30342031303A31303A3030,0x3430,'0',0x30,0x37323535353865302D393439382D313164662D613830652D303031626239376566316134,0x323939363331,0x3930,'1',0x3430,0x30,0x30,0x30)'。
但是我去数据库中查ID='5c39b490-45f3-11e0-abcc-001bb97ef1a4',
却能正确显示,这些字段的值都不是十六进制的。该表的字段类型如下:
| ID | varchar(36) | NO | PRI | NULL | |
| PIX_ID | varchar(36) | NO | | NULL | |
| PLAYTIME | datetime | NO | | NULL | |
| HALL_ID | varchar(36) | NO | MUL | NULL | |
| PRICE | decimal(5,2) | NO | | NULL | |
| COMMEND | char(1) | NO | | 0 | |
| STATE | char(1) | NO | | NULL | |
| DELFLAG | char(1) | NO | | 1 | |
| PLAN_ID | varchar(20) | NO | | NULL | |
| PIXLENGTH | varchar(20) | YES | | NULL | |
| SPRICE | decimal(5,2) | YES | | 0.00 | |
| CSTATE | varchar(5) | YES | | 0 | |
| SELLSTATE | varchar(5) | YES | | 0 | |
| PSTATE | char(1) | YES | | NULL | |
问题来了,如果说这个语句在向M写入时能写成功(binlog都写进去了,肯定是成功的),那为什么同样的语句在S却无法执行?如果S不能直接执行这些语句,那么我的主库也应该无法执行这种语句啊,可是为什么却执行成功了,并且转化为正确的格式呢?
另外,两台mysql参数配置都一样,mysql版本5.1.35。
请各位大虾指点迷津! |
|