MyCAT升级到MySQL8
公司一直用的是MySQL 5.6,最近在改表的时候发现加索引会导致整张表上锁。研究了一下MySQL的新版本,发现MySQL8支持加索引不锁表,所以计划将MySQL升级到8。
问题来了,公司内部比较多项目都使用了MyCAT,所以MyCAT支持MySQL8成为了一个工作重点。
平滑升级
升级数据库,重中之重就是保证服务持续可用:
使用Nignx来实现多库备份
- Nginx从1.9版本支持TCP转发,用于对于MySQL进行负载均衡
- 多个MySQL版本直接,采取binlog的方式同步数据
- MySQL后端需要支持MySQL8
改造MyCAT
目前内部使用的MyCAT版本是1.6,并不直接支持MySQL8,于是需要下面改造:
- 将
mysql-connector-java-8.0.16.jar
添加到mycat的lib - 修改
conf/schema.xml
,schema 节点的checkSQLschema
属性,填 true - 修改
conf/schema.xml
,dataHost 节点的dbDriver
属性,修改成 jdbc - 修改
conf/schema.xml
,read/writeHost 节点的url
属性,使用jdbc url,例如:jdbc:mysql://ip:port?useSSL=false&serverTimezone-UTC
- 重启MyCAT即可验证
彩蛋
MyCAT真是一个让人又爱又恨的中间件,文档简陋、更新慢,最近还发现有不少拼写错误的地方,真的是无语了
Global单词,拼写错误,而且还有不一样的写法
作为专业数据库中间件,日志里面的MySQL都能拼写错误