
寫了個mycat連接pgsql的測驗例子,mycat可以正常啟動,但是連接一直報錯。
mycat日志檔案報錯資訊:
2018-08-16 17:10:31.212 ERROR [$_NIOREACTOR-15-RW] (io.mycat.net.FrontendConnection.loadDataInfileEnd(FrontendConnection.java:271)) - load data error
java.lang.NullPointerException
at io.mycat.server.handler.ServerLoadDataInfileHandler.end(ServerLoadDataInfileHandler.java:622) ~[Mycat-server-1.6-RELEASE.jar:?]
at io.mycat.net.FrontendConnection.loadDataInfileEnd(FrontendConnection.java:269) ~[Mycat-server-1.6-RELEASE.jar:?]
at io.mycat.net.FrontendConnection.rawHandle(FrontendConnection.java:469) ~[Mycat-server-1.6-RELEASE.jar:?]
at io.mycat.net.FrontendConnection.handle(FrontendConnection.java:460) ~[Mycat-server-1.6-RELEASE.jar:?]
at io.mycat.net.AbstractConnection.onReadData(AbstractConnection.java:321) ~[Mycat-server-1.6-RELEASE.jar:?]
at io.mycat.net.NIOSocketWR.asynRead(NIOSocketWR.java:190) ~[Mycat-server-1.6-RELEASE.jar:?]
at io.mycat.net.AbstractConnection.asynRead(AbstractConnection.java:273) ~[Mycat-server-1.6-RELEASE.jar:?]
at io.mycat.net.FrontendConnection.register(FrontendConnection.java:444) ~[Mycat-server-1.6-RELEASE.jar:?]
at io.mycat.net.NIOReactor$RW.register(NIOReactor.java:160) ~[Mycat-server-1.6-RELEASE.jar:?]
at io.mycat.net.NIOReactor$RW.run(NIOReactor.java:92) ~[Mycat-server-1.6-RELEASE.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_151]
2018-08-16 17:10:32.424 INFO [Timer1]
uj5u.com熱心網友回復:
schema.xml配置:<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!--宣告一個邏輯表,表名為TESTDB和server.xml對應-->
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
<!--指定實際表名為user_tb,分片規則與rule.xml里定義的名字一致-->
<table name="user_tb" primaryKey="id" autoIncrement="true" dataNode="node_db01, node_db02" rule="role1"/>
</schema>
<dataNode name="node_db01" dataHost="dataHost01" database="my_db"/>
<dataNode name="node_db02" dataHost="dataHost01" database="my_db02"/>
<!--宣告資料庫的連接地址,名稱為dataHOst01,與dataNode中標簽一致-->
<!--maxCon,minCon指定了連接數-->
<!--balance:
1. balance="0", 所有讀操作都發送到當前可用的writeHost上。
2. balance="1",所有讀操作都隨機的發送到readHost。
3. balance="2",所有讀操作都隨機的在writeHost、readhost上分發。
-->
<!--writeType:
1. writeType="0", 所有寫操作都發送到可用的writeHost上。
2. writeType="1",所有寫操作都隨機的發送到readHost。
3. writeType="2",所有寫操作都隨機的在writeHost、readhost分上發
。-->
<dataHost name="dataHost01" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="postgresql" dbDriver="native">
<heartbeat>select user</heartbeat>
<!-- postgresql專用-->
<writeHost host="hostM1" url="192.168.223.131:5432" user="dbuser" password="hand1234hand"/>
</dataHost>
</mycat:schema>
rule.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<!-- - - Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License. - You
may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0
- - Unless required by applicable law or agreed to in writing, software -
distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the
License for the specific language governing permissions and - limitations
under the License. -->
<!DOCTYPE mycat:rule SYSTEM "rule.dtd">
<mycat:rule xmlns:mycat="http://io.mycat/">
<!-- 指定表規則的名稱, 以及分片的function-->
<tableRule name="role1">
<rule>
<columns>id</columns>
<algorithm>mod-long</algorithm>
</rule>
</tableRule>
<!-- 分片名稱為mod-long, 為tableRule標簽提供-->
<function name="mod-long" class="io.mycat.route.function.PartitionByMod">
<!-- 指定有幾個節點,咱們有兩個db02和db03,所以寫2, 取模就是id%2 -->
<property name="count">2</property>
<property name="virtualBucketTimes">160</property>
</function>
</mycat:rule>
uj5u.com熱心網友回復:
我也碰到這個問題了,請問怎么解決的?轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/16668.html
標籤:PostgreSQL
上一篇:MySQL分組求和問題
