我用mycat配置读写分离,现有4个mysql数据库,已经配置了双主从,现在用mycat配置读写分离,期望主库为写,从库为读,核心配置如下:
配置完成后mycat可以正常启动,但是通过数据库工具访问老是报错:
从报错上来看是mycat把我的dataNode配置name读取成数据库了,错误日志如下:
execute sql err : errno:1049 Unknown database 'mydn' con:MySQLConnection@1291480331 [id=11, lastTime=1724728367743, user=root, schema=test, old shema=test, borrowed=true, fromSlaveDB=true, threadId=95, charset=utf8, txIsolation=3, autocommit=true, attachment=mydn{SHOW FULL TABLES FROM mydn}, respHandler=SingleNodeHandler [node=mydn{SHOW FULL TABLES FROM mydn}, packetId=1], host=10.4.15.40, port=3309, statusSync=null, writeQueue=0, modifiedSQLExecuted=false] frontend host:127.0.0.1/61306/root
我一度以为是mycat的bug,更换了两个版本1.6.7和1.5.1之后错误一致,数据库为mysql5.7,这个问题已经折腾了两天,对比了各种配置都没发现有什么问题,请教各位大神有没有知道原因所在的,非常感谢!
问题已经解决,更换mysql客户端,之前使用的是dBeaver,可能是数据库驱动不对,老是各种奇怪的问题,更换成Navicat问题解决,终于不报奇怪的问题了,但是还是报错找不到dataNode,将配置文件的checkSQLschema改为true解决。
mysql也可以正常连接了
但是仅限Navicat连接,dBeaver仍然在报错中
不过将错误叉掉,点击数据,它也还是能查出来
这个dBeaver感觉还是没有Navicat智能啊,尤其是需要手动选择数据库驱动,选错了可能就有这种奇奇怪怪的问题。
这个问题留在这里给以后踩坑的同学一个思路。