目的测试mycat读写分离问题描述:启动mycat之后,日志一直报这个错。
INFO | jvm 1 | 2018/03/19 18:42:52 | 2018-03-19 18:42:52,586 [INFO ][$_NIOREACTOR-0-RW] can't get connection for sql :select user() (io.mycat.sqlengine.SQLJob:SQLJob.java:114)
INFO | jvm 1 | 2018/03/19 18:42:52 | 2018-03-19 18:42:52,586 [INFO ][$_NIOREACTOR-0-RW] close connection,reason:stream closed ,MySQLConnection [id=3436, lastTime=1521456172570, user=dbwrite, schema=test, old shema=test, borrowed=false, fromSlaveDB=true, threadId=0, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=192.168.1.131, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false] (io.mycat.net.AbstractConnection:AbstractConnection.java:508) 用命令行登录mycat,可以查看到逻辑库,逻辑表:
mysql> show databases;
+----------+
| DATABASE |
+----------+
| TESTDB |
+----------+
mysql> explain insert into tb1 values(1,'ghf');
+-----------+---------------------------------+
| DATA_NODE | SQL |
+-----------+---------------------------------+
| dn1 | insert into tb1 values(1,'ghf') |
+-----------+---------------------------------+
但是实际操作数据库得时候:
mysql> insert into tb1 values(1,'ghf');
ERROR 3009 (HY000): java.lang.IllegalArgumentException: Invalid DataSource:0用navicat连,插入数据也不行:环境:linux 6.4
主机一:mycat+mysql主
主机二:mysql从schema.xml配置:
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
<table name="tb1" type="global" dataNode="dn1" />
</schema> <dataNode name="dn1" dataHost="localhost1" database="test" /> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="192.168.1.135:3306" user="dbwrite"
password="123456">
<readHost host="hostS2" url="192.168.1.131:3306" user="dbwrite" password="123456" />
</writeHost>
</dataHost>server.xml配置:
<user name="dbwrite">
<property name="password">123456</property>
<property name="schemas">TESTDB</property>
</user>
求各位大佬帮忙看一下,堵在这好几天了!
INFO | jvm 1 | 2018/03/19 18:42:52 | 2018-03-19 18:42:52,586 [INFO ][$_NIOREACTOR-0-RW] can't get connection for sql :select user() (io.mycat.sqlengine.SQLJob:SQLJob.java:114)
INFO | jvm 1 | 2018/03/19 18:42:52 | 2018-03-19 18:42:52,586 [INFO ][$_NIOREACTOR-0-RW] close connection,reason:stream closed ,MySQLConnection [id=3436, lastTime=1521456172570, user=dbwrite, schema=test, old shema=test, borrowed=false, fromSlaveDB=true, threadId=0, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=192.168.1.131, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false] (io.mycat.net.AbstractConnection:AbstractConnection.java:508) 用命令行登录mycat,可以查看到逻辑库,逻辑表:
mysql> show databases;
+----------+
| DATABASE |
+----------+
| TESTDB |
+----------+
mysql> explain insert into tb1 values(1,'ghf');
+-----------+---------------------------------+
| DATA_NODE | SQL |
+-----------+---------------------------------+
| dn1 | insert into tb1 values(1,'ghf') |
+-----------+---------------------------------+
但是实际操作数据库得时候:
mysql> insert into tb1 values(1,'ghf');
ERROR 3009 (HY000): java.lang.IllegalArgumentException: Invalid DataSource:0用navicat连,插入数据也不行:环境:linux 6.4
主机一:mycat+mysql主
主机二:mysql从schema.xml配置:
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
<table name="tb1" type="global" dataNode="dn1" />
</schema> <dataNode name="dn1" dataHost="localhost1" database="test" /> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="192.168.1.135:3306" user="dbwrite"
password="123456">
<readHost host="hostS2" url="192.168.1.131:3306" user="dbwrite" password="123456" />
</writeHost>
</dataHost>server.xml配置:
<user name="dbwrite">
<property name="password">123456</property>
<property name="schemas">TESTDB</property>
</user>
求各位大佬帮忙看一下,堵在这好几天了!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货