2021-06-21

android 使用jdbc 远程连接MySQL8.0 问题

异常1:

异常提示:java.sql.SQLException: null, message from server: "Host is not allowed to connect to this MySQL server

异常位置:

conn=DriverManager.getConnection();

造成该异常的原因是访问权限不够,可以使用以下命令查看一下权限

如果root用户权限为localhost则外网无法访问,需要修改一下权限,并提交修改


这样第一个问题就解决了

异常2:

异常信息:com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Client does not support authentication protocol requested by server; consider upgrading MySQL client

异常位置:

conn=DriverManager.getConnection();

我出现这个问题的原因是jar和Mysql版本不匹配

保持版本一致即可

异常3:

异常信息: java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; in class Ljava/lang/invoke/LambdaMetafactory; or its super classes (declaration of 'java.lang.invoke.LambdaMetafactory' appears in /apex/com.android.art/javalib/core-oj.jar)

异常位置:

    Class.forName("com.mysql.jdbc.Driver");

这个异常网上找了半天,在build.gradle文件中加上

compileOptions{

sourceCompatibilityJavaVersion.VERSION_1_8

targetCompatibilityJavaVersion.VERSION_1_8

}

异常4:

异常信息:NoClassDefFoundError: Failed resolution of: Ljava/sql/SQLType;


找不到SQLType这个类,可以在Android Studio上搜出这个类,自己构造一个一样的,这样。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JAVA 来源: sun公司,oracle收购 版本情况: 1.0 ....1.5(5.0)....8.0(1.8...
    AAnna珠阅读 679评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,779评论 18 399
  • java java枚举类时间操作类正则表达式IO范型异常volatile内存模型多线程反射classLoader动...
    万龙甲阅读 213评论 0 0
  • 一. Java基础部分.................................................
    wy_sure阅读 3,839评论 0 11
  • IOC 控制反转容器控制程序对象之间的关系,而不是传统实现中,有程序代码之间控制,又名依赖注入。All 类的创建,...
    irckwk1阅读 987评论 0 0