题记:前几天用JDBC连接MYSQL数据库的时候,出现了一些BUG,有代码层次的,也有设置层次的,

  下面的解决方法时我目前所遇到的,后期如果还有遇到的会进行补充。

一、出现:远程mysql_java.sql.SQLException: null, message from server: "Host 'xxx' is not allowed to connect

  很明显的意思就是当前数据库不允许我们进行远程连接。

  远程的机器B不允许机器A访问他的数据库。也就是说,我们要解决这个问题,就是要让机器B的数据库允许机器A访问,就搞定啦;

  立刻到cmd窗口中使用 >mysql -uroot  -proot -h192.168.1.88 -P3306 -Ddb10来连接服务器会显示错误,说明确实是无法通过远程连接到数据库的。

  【当初设置的时候没有保存截图,这里就没有放图了,但是有Err的明星错误的】

  注意:前提是使用  >mysql -uroot -proot   这条指令是可以连接到数据库的,不然就是你的环境变量或者是数据库的安装有问题了。MYSQL的安装请点击

  如下

  

  当进入到这个界面我们就可以进行对应的解决方案了

  1.   第一步:输入  use mysql
  2.   第二步:输入 show tables;

  

  再输入相关指令:

  •   第一步:select host from user;
  •   第二步:update user set host ='%' where user='root';
  •   第三步:select host form user;   [检查一下是否更新成功]

  

  然后进入计算机的服务界面,重新启动MYSQL的服务就可以了。

  

  再去cmd窗口使用远程连接,进入mysql目录就可以成功了。

  

  小结:当时整数据库的时候全部用了开发工具,也没有注意到该数据库是否允许远程连接的,一直都是进行本地连接,

  直到后面使用JDBC来连接数据库进行操作的时候才发现这个原因,有点懵懵的,哈哈

二、Exception in thread "main" java.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver : Unsupported major.minor version 52.0

  上面这个错误是因为导入的用来连接的jar包和我们当前项目的jdk版本是不一样的,导致版本不一致而出错了

  

  

  

  出现问题原因-----分析 { JDK版本不一致的问题 }

  •   在eclipse中开发的项目有个Java build path中可以配置的JDK
  •   java compiler中可以配置compiler level{eclipse>windows>preferences>java>compiler>compiler compliance level}

  区别

  •   build path的JDK版本是你开发的时候编译器需要使用到的,就是你在eclipse中开发代码,给你提示报错的,编译的过程;
  •   java compiler compliance level中配置的编译版本号,这个编译版本号的作用是,你这个项目将来开发完毕之后,要放到服务器上运行,那个服务器上JDK的运行版本。

  问题就是,build path中配置1.7的JDK,java compiler compliance level中配置的1.7,但是程序运行需要的是1.8的JDK,就报了那个错误。

  在eclipse中进行开发的时候,build path 中JDK进行类库的编译(就是你使用类在不在这个JDK中),

  java compiler compliance level是对这个项目语法的编译(就是你的项目中语法的正确与否),在开发的过程中,这两个地方是都起作用的。

  总结:build path 和 java complier compliance level和服务器配置的JDK保持一致,就不会出现任何问题的

  这个问题的解决方法也是很简单的,首先去查看自己的导入的jar包是在哪个jdk版本下面运行的,然后再更改我们项目的jdk版本号,或者是换用和我们一样版本号的jar包就可以解决了,

  这里我导入的是在jdk8上运行的jar包,所以我将我的项目改为jdk8的,

  查看我的项目目前的版本是:1.7的

  

  

  第一步、

  

  第二步、

  

  第三步、

  

  这个时候再查看我们的项目JDK版本是1.8的了。

3、上面是解决了由于版本不一致的情况,但是当我运行的时候,会报下面的错误:  

  Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and

  manual loading of the driver class is generally unnecessary.

  

  这个就很简单了,白问翻译过来都知道了,就是要换用新的类了,将使用com.mysql.jdbc.Drive的换为com.mysql.cj.jdbc.Driver即可,这是由于我当前使用的是最新的jdbc驱动包,里面的API有跟新了

4、当我把API换为新的了,但是运行的时候又出错了,这回的错是:

  Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone.

  You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

  

  仔细阅读,发现是与时间设置相关,仔细研究后发现,是因为新版的Mysql中的时区默认设置与本地时区之间是不同的,因此会报错。

  解决方法即为修改时区设置即可,可以在连接数据库的url的最后添加这样一段代码 ?serverTimezone=UTC ,就可以解决问题了。

  事例:

  原来报错的:String url = "jdbc:mysql://176.129.8.53:3306/db10";

  改正后的:String url = "jdbc:mysql://176.129.8.53:3306/db10?serverTimezone=UTC";

总结:这是对使用MYSQL的JDBC驱动包进行数据库的操作的时候总结出来的一些解决方案,

然后分享出来自己当时的一步一步的解决步骤,肯定是不全的,但是就目前而言是可以解决一大部分的错误的了,

希望可以帮到到家解决对应的BUG,少走一些弯路,谢谢。

                                                                                                                            2019-03-09 13:46:08

使用JDBC连接数据库的一些BUG的更多相关文章

  1. JDBC连接数据库

    JDBC连接数据库 1.加载JDBC驱动程序. Class.forName("com.mysql.jdbc.Driver"); 建立连接,. Connection conn = D ...

  2. java开发中JDBC连接数据库代码和步骤

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...

  3. java开发JDBC连接数据库详解

    JDBC连接数据库 好文一定要让大家看见 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机) ...

  4. 【转】Java开发中JDBC连接数据库代码和步骤总结

    (转自:http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html) JDBC连接数据库 创建一个以JDBC连接数据库的程序,包含7个 ...

  5. 使用配置文件来配置JDBC连接数据库

    1.管理数据库连接的Class 代码如下: package jdbcTest;import java.sql.Connection;import java.sql.DriverManager;impo ...

  6. Java中JDBC连接数据库代码和步骤详解总结

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤:         1.加载JDBC驱动程序:         在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Jav ...

  7. 完整java开发中JDBC连接数据库代码和步骤

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...

  8. JDBC连接数据库(PreparedStatement)

    PreparedStatement是在数据库端防止SQL注入漏洞的SQL方法这里演示了一些基本使用方法同样使用Oracle数据库,之前已经手动建立了一张t_account表数据库代码参见上一篇< ...

  9. JDBC连接数据库演示

    今天重新学习了JDBC连接数据库,使用的数据库是Oracle,在运行前已经手动建立了一张t_user表,建表信息如下: create table t_user( card_id ) primary k ...

随机推荐

  1. 51 nod 1109 01组成的N的倍数

    1109 01组成的N的倍数 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 给定一个自然数N,找出一个M,使得M > 0且M是N的倍数,并且 ...

  2. dfs序+主席树 或者 树链剖分+主席树(没写) 或者 线段树套线段树 或者 线段树套splay 或者 线段树套树状数组 bzoj 4448

    4448: [Scoi2015]情报传递 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 588  Solved: 308[Submit][Status ...

  3. CSS属性的私有前缀

    在CSS属性能中,我们常常能看到-webkit-,-moz-之类的前缀,这种就叫做浏览器私有前缀,是浏览器对于新CSS属性的一个提前支持.-webkit-是webkit内核的,-moz-是Firefo ...

  4. CSS预处理器们

    CSS预处理器有很多,最早的是2006年的Less,到后来2010年的SASS,还有现在也很出名的Stylus.不过要使用它们都要使用一些工具,比如Less的话要使用Grunt或者Gulp或者Node ...

  5. System中关于Property的方法

    System类在java.lang包中,所有方法都是静态的,里边有很多对系统的属性和控制方法 System类有三个成员变量:out-标准输出流(默认是控制台),in-标准输入流(默认是键盘),err- ...

  6. 论文里有公式?用texlive+texstudio(windows下)

    要写论文了,但论文里有一大堆公式,感觉很麻烦,经过询问同学知道有tex这么个东西,可以像写代码一样写论文,许多论文的格式都有相关的模板,所以学习一下,这里记录一下环境安装. texlive和texst ...

  7. HDU 2094 产生冠军 (map容器)

    title: 产生冠军 杭电 2094 tags: [acm,stl] 题目链接 Problem Description 有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛. 球赛的规则 ...

  8. ecshop代码修改后提交,无法立即生效

    今天帮一朋友部署一网站.成品的ecshop模版站.在搭建好xammp集成环境,导入数据库,修改配置文件后,报了一大堆错. 其中第一个是关于废弃preg_replace中/e这种用法的,因为存在漏洞,一 ...

  9. 一键切图 PS 动作 【收藏】

    使用方法 一键切图动作.zip 1. 下载动作 2. 打开PS 动作 窗口,导入动作 3. 选中图层后 点击 F2 一键切图 详情看原文链接 原文链接

  10. jmeter主要组件

    1.测试计划(Test plan) 2.线程组(Thread Group) 3.配置原件(Configuration) 4.逻辑控制器(Login Controller) 5.取样器(Sampler) ...