MySQL复制之时区问题

2014-11-24 18:01:17 · 作者: · 浏览: 0

今天接到一需求,说要在国际间为MySQL建立复制。这其实没什么的,网络环境再差,MySQL也是可以应对的。但偏偏出现时区问题的错误!


错误如下:


[Warning] Slave I/O: Get master clock failed with error: Lost connection to MySQL server during query, Error_code: 2


[Warning] Slave I/O: Master command COM_REGISTER_SLAVE failed: failed registering on master, reconnecting to try again, log '1.000001' at position 48920, Error_code: 1597


slave 无法获得master的clock,MySQL time_zone 变量默认等于=SYSTEM 即采用系统的时区。修改时区方式:set global time_zone='+00:00' 或者 set global time_zone='-11:00';单纯的修改DB的时区,可以能会造成本地程序混乱,最终决定修改系统的时区。这个问题交给了我们的运维(crontab的时区也要搞定),后来重启DB搞定


在这里简单总结下建立复制注意事项:


1、server_id 要唯一


2、binlog 和 relay_log 名字要自定义。不能采用 hostname.log(采用修改系统hostname时可能造成数据库无法启动)


3、数据库时区要一致


4、对专门复制用的用户 要在master和slave上同时建立账号(方便故障切换,为以后自动化做准备)