Предыстория: Решил вытащить базу на отдельный сервер. На сервере поднял Percona Mysql 5.5
Код:
Server version: 5.5.25a-27.1 Percona Server (GPL), Release rel27.1, Revision 277
mysql Ver 14.14 Distrib 5.5.25a, for Linux (x86_64) using readline 5.1
Поднял репликацию все дела. Чтобы в день Y в час Х выключить все это дело и просто переключить обращение к другому серверу.
История: Сегодня с утра смотрю в
show slave status\G и вижу
Код:
Last_Error: Error 'BIGINT UNSIGNED value is out of range in '(`bgbilling`.`contract_balance`.`mm` - 1)'' on query. Default database: 'bgbilling'. Query: 'CREATE TEMPORARY TABLE _validator_balance_dump( UNIQUE(cid) ) SELECT cid, MAX(yy*12+(mm-1))%12 + 1 AS mm,FLOOR(MAX(yy*12+(mm-1)) / 12) AS yy FROM contract_balance WHERE (yy*12 + mm)<(2012*12 + 10) GROUP BY cid'
Собственно как оказалось присутствует проблема с тем, что в mysql 5.1 версии выборка слишком больших значений возвращала минусовое значение, в 5.5 версии на это уже ругается
Код:
mysql> SELECT 9223372036854775807 + 1;
+-------------------------+
| 9223372036854775807 + 1 |
+-------------------------+
| -9223372036854775808 |
+-------------------------+
1 row in set (0.00 sec)
Код:
mysql> SELECT 9223372036854775807 + 1;
ERROR 1690 (22003): BIGINT value is out of range in '(9223372036854775807 + 1)'
mysql>