android 通过jdbc连接Mysql运行错误
I/System.out: [socket][/10.110.169.248:40328] connected
I/System.out: close [socket][/10.110.169.248:40328]
W/System.err: java.sql.SQLException: Unknown system variable 'query_cache_type'
W/System.err: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
W/System.err: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)
W/System.err: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)
W/System.err: at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)
W/System.err: at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
W/System.err: at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2483)
W/System.err: at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2441)
W/System.err: at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1381)
W/System.err: at com.mysql.jdbc.ConnectionImpl.loadServerVariables(ConnectionImpl.java:3790)
W/System.err: at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3227)
W/System.err: at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2235)
W/System.err: at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2017)
W/System.err: at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:779)
W/System.err: at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)
W/System.err: at java.lang.reflect.Constructor.newInstance0(Native Method)
W/System.err: at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
W/System.err: at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
W/System.err: at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)
W/System.err: at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
W/System.err: at java.sql.DriverManager.getConnection(DriverManager.java:569)
W/System.err: at java.sql.DriverManager.getConnection(DriverManager.java:219)
W/System.err: at com.example.administrator.myapplication1.Util.openConnection(Util.java:22)
W/System.err: at com.example.administrator.myapplication1.MainActivity$2$1.run(MainActivity.java:46)
W/System.err: at java.lang.Thread.run(Thread.java:761)
I/System.out: null
W/libEGL: [ANDROID_RECORDABLE] format: 1
应该是mysql版本和驱动版本不匹配,更换一个就ok了。建议从低一点的开始。
query_cache_type这个变量有问题
如下图所示,链接远程的数据库提示Can't connect to MySQL server (10060)。
遇到这个问题,我们首先做一个分析,导致这种状况出现的几种原因:
a、bind-address 对于连接的ip做了一个限定
b、数据库用户只能在指定的ip上连接
c、网络,防火墙可能导致的问题
MySQL错误:Can't connect to(10060)
我们先检查一下用户的设置,可以看出来 root用户是允许任意的机器连接的。
MySQL错误:Can't connect to(10060)
检查配置文件,发现配置文件中没有bind-address的设置,故此,判断不是这里的问题。那剩下来就是检查网络问题。
MySQL错误:Can't connect to(10060)
可以看出防火墙已经启用,我们先关闭防火墙,然后再尝试连接。
MySQL错误:Can't connect to(10060)
MySQL错误:Can't connect to(10060)
再次验证,即可发现数据库可以成功链接了。
MySQL错误:Can't connect to(10060)
如下图所示,链接远程的数据库提示Can't connect to MySQL server (10060)。
遇到这个问题,我们首先做一个分析,导致这种状况出现的几种原因:
a、bind-address 对于连接的ip做了一个限定
b、数据库用户只能在指定的ip上连接
c、网络,防火墙可能导致的问题
MySQL错误:Can't connect to(10060)
我们先检查一下用户的设置,可以看出来 root用户是允许任意的机器连接的。
MySQL错误:Can't connect to(10060)
检查配置文件,发现配置文件中没有bind-address的设置,故此,判断不是这里的问题。那剩下来就是检查网络问题。
MySQL错误:Can't connect to(10060)
可以看出防火墙已经启用,我们先关闭防火墙,然后再尝试连接。
MySQL错误:Can't connect to(10060)
MySQL错误:Can't connect to(10060)
再次验证,即可发现数据库可以成功链接了。
MySQL错误:Can't connect to(10060)
应该是mysql版本和驱动版本不匹配导致的问题,建议更换低版本。
mysql版本和驱动版本不匹配导致的问题
Unknown system variable 'query_cache_type' 数据库版本问题
结案,已解决问题,参照大神意见,换了jdbc驱动,mysql 版本5.1.73,jdbc驱动5.1.6.