这个错误从堆栈上看是connect引起的,通过http://stackoverflow.com/questions/2983248/com-mysql-jdbc-exceptions-jdbc4-communicationsexception-communications-link-fai的解析发现时由于没连上服务器导致的,但是明明服务器的3306端口已经打开了啊,而且在服务器上使用mysql客户端就可以连接上去啊。这是怎么回事,使用tcpdump抓包发现每一次SYN请求都会被服务器无情的回复RST报文,这说明该端口确实没有打开,使用netstat查看该端口发现的确:
原来服务器只接收本地的连接,怪不得我在windows上一直连不上呢,解决的方法就是修改mysql的配置文件my.conf,把其中的bind-address从原来的127.0.0.1修改为0.0.0.0,这样就可以从远程连接到mysql了。 接着重新运行又出现这样的错误:
Exception in thread "main" mondrian.olap.MondrianException: Mondrian Error:Failed to parse query 'select {[Measures].[业务量]} on columns from MsgBusi'
at mondrian.resource.MondrianResource$_Def0.ex(MondrianResource.java:755)
at mondrian.olap.ConnectionBase.parseQuery(ConnectionBase.java:77)
at mondrian.olap.ConnectionBase.parseQuery(ConnectionBase.java:59)
at mondrianTest.TestMDX.testQuery(T