美文网首页
Java/Spring使用IPv6地址连接到MySQL服务器

Java/Spring使用IPv6地址连接到MySQL服务器

作者: hoxis | 来源:发表于2018-12-29 12:40 被阅读14次

    地址格式

    IPv6 地址有两个逻辑部分:64 位网络前缀和 64 位主机地址部分。(主机地址通常是从接口 MAC 地址自动生成的。)

    IPv6 地址由 8 组 16 位十六进制值表示,以冒号(:)分隔,如下所示:

    IPv6 地址的典型示例:

    2001:0db8:85a3:0000:0000:8a2e:0370:7334
    

    另外,十六进制数字不区分大小写。

    使用IPv4地址连接到MYSQL的方法(传统方式)

    urlString = "jdbc:mysql://10.144.1.216:3306/dbName";
    Class.forName(driver);
    DriverManager.setLoginTimeout(getConnectionTimeOut());
    dbConnection = DriverManager.getConnection(urlString,user,password);
    

    使用IPv6地址连接到MYSQL的方法(新方法)

    urlString = "jdbc:mysql://address=(protocol=tcp)(host=fe80::5ed6:baff:fe14:a23e)(port=3306)/db";
    Class.forName(driver);
    DriverManager.setLoginTimeout(getConnectionTimeOut());
    dbConnection = DriverManager.getConnection(urlString,user,password);
    

    注意

    如果直接在 IPv4 地址格式的基础上,将 IPv4 地址直接换成 IPv6 地址,启动项目时,可能会出现下面的异常:

    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Cannot load connection class because of underlying exception: 'java.lang.NumberFormatException: For input string: "fe80::5ed6:baff:fe14:a23e]:3306"'.
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    

    附 Spring 配置方式

    spring.datasource.url=jdbc:mysql://address=(protocol=tcp)(host=fe80::5ed6:baff:fe14:a23e)(port=3306)/test?useUnicode=true&characterEncoding=utf8
    spring.datasource.username=root
    spring.datasource.password=123456
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    

    公众号提供CSDN资源免费下载服务!

    你的关注是对我最大的鼓励!

    最近搜集到传智播客 2018 最新 Python 和 Java 教程!关注本公众号,后台回复「2018」即可获取下载地址

    相关文章

      网友评论

          本文标题:Java/Spring使用IPv6地址连接到MySQL服务器

          本文链接:https://www.haomeiwen.com/subject/cxvulqtx.html