最近專案要用到分庫分表,看了一些當前的分庫分表中間件,感覺sharding-proxy還可以于是就嘗試了一下。
本地用Navicat Premium15.0.4訪問sharding-proxy服務。
碰到幾個比較奇怪的問題,始終找不到原因,想請問高手幫忙看看。
第一個問題是本地的Navicat Premium上能顯示測驗連接成功。
保存連接后雙擊連接名。
本來的話,雙擊連接名應該能看到當前連接下的所有資料庫串列,但我總是看不到。
僅僅只是連接名稱的顏色從灰色變為綠色,沒有向下展開資料庫串列。
右鍵連接名稱-->創建新的查詢,這個時候會彈出一個查詢視窗,在這個視窗寫入SQL可以成功執行的(說明資料庫是成功連接上了)。
但為什么就是看不到資料庫串列呢?
另外就是sharding-proxy服務器上的日志總是在報下面兩個錯誤。
搞了很久都沒搞定,shrding-proxy的相關資料實在不多。
麻煩諸位大人幫忙看看,非常感謝。
報錯一:
java.lang.IllegalArgumentException: Cannot find JDBC type '2003' in PostgreSQL column type
at org.apache.shardingsphere.shardingproxy.transport.postgresql.constant.PostgreSQLColumnType.valueOfJDBCType(PostgreSQLColumnType.java:187)
at org.apache.shardingsphere.shardingproxy.transport.postgresql.packet.command.query.PostgreSQLColumnDescription.<init>(PostgreSQLColumnDescription.java:48)
at org.apache.shardingsphere.shardingproxy.frontend.postgresql.command.query.text.PostgreSQLComQueryExecutor.getPostgreSQLColumnDescriptions(PostgreSQLComQueryExecutor.java:100)
at org.apache.shardingsphere.shardingproxy.frontend.postgresql.command.query.text.PostgreSQLComQueryExecutor.createQueryPacket(PostgreSQLComQueryExecutor.java:88)
at org.apache.shardingsphere.shardingproxy.frontend.postgresql.command.query.text.PostgreSQLComQueryExecutor.execute(PostgreSQLComQueryExecutor.java:75)
at org.apache.shardingsphere.shardingproxy.frontend.command.CommandExecutorTask.executeCommand(CommandExecutorTask.java:92)
at org.apache.shardingsphere.shardingproxy.frontend.command.CommandExecutorTask.run(CommandExecutorTask.java:72)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
報錯二:
CONSOLE_LOG_PATTERN_IS_UNDEFINEDorg.postgresql.util.PSQLException: The server's client_encoding parameter was changed to UNICODE. The JDBC driver requires client_encoding to be UTF8 for correct operation.
at org.postgresql.core.v3.QueryExecutorImpl.receiveParameterStatus(QueryExecutorImpl.java:2604)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2219)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:308)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:365)
at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:307)
at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:293)
at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:270)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:266)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:1168)
at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:103)
at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java)
uj5u.com熱心網友回復:
第一個是路由配錯。第二個問題是客戶端連接的編碼問題。把調設定為utf-8就可以。uj5u.com熱心網友回復:
你好,
你講的這兩方面我大概也知道,關鍵是不清楚怎么解決。
麻煩能給個詳細的解決方案嗎?
比如,路由配置錯了,那應該怎么配,修改哪個組態檔?
謝謝。
uj5u.com熱心網友回復:
問題解決了嗎?我也遇到了同樣的問題,問題二容易解決,主要是問題一,我看了下 2003代表array,但是根本沒用到array型別的資料轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/74639.html
標籤:Java EE
上一篇:啟動JBoss,運行ejb專案時,總是報錯找不到 jar包,但jar包已build; eclipse+jdk1.6+Jboss4.0.5GA+EJB
