从 JDBC 远程访问 mysql 时获取数字格式异常
Getting number format exception when accessing mysql from JDBC remotely
我可以使用我创建的用户从命令行访问我的远程数据库,但是当我尝试从 jdbc 连接时,我得到数字格式异常。
public static final String URL = "jdbc:mysql://ipv6:3306/Library";
public static final String USER = "user";
public static final String PASSWORD = "correctpass";
conn = DriverManager.getConnection(url, user, password);
投掷
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Cannot load connection class because of underlying exception: 'java.lang.NumberFormatException: For input string: "30a:2e1a:2470:7c29:300b:f757:2941:3306"'
我可以使用相同的凭据登录终端,这就是我如此困惑的原因。感谢您的帮助。
不确定为什么要使用 IPV6 地址进行连接,但可以做到。
public static final String urlString = “jdbc:mysql://address=(protocol=tcp)(host=your-ipv6-address)(port=3306)/Library”;
Class.forName(driver);
public static final String user= "user";
public static final String password= "correctpass";
DriverManager.setLoginTimeout(getConnectionTimeOut());
dbConnection = DriverManager.getConnection(urlString,user,password);
试试上面的。由于从 mysql 连接读取地址,因此期望在冒号后读取端口,并且所有端口都是数字。由于您没有使用标准地址,它会 return 您在尝试解析端口时出错(所有数字都符合预期 - 但有字母,因此它会遇到数字格式异常)。如果您使用的是 IPV6,则需要将其声明为 IPV6。
我可以使用我创建的用户从命令行访问我的远程数据库,但是当我尝试从 jdbc 连接时,我得到数字格式异常。
public static final String URL = "jdbc:mysql://ipv6:3306/Library";
public static final String USER = "user";
public static final String PASSWORD = "correctpass";
conn = DriverManager.getConnection(url, user, password);
投掷
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Cannot load connection class because of underlying exception: 'java.lang.NumberFormatException: For input string: "30a:2e1a:2470:7c29:300b:f757:2941:3306"'
我可以使用相同的凭据登录终端,这就是我如此困惑的原因。感谢您的帮助。
不确定为什么要使用 IPV6 地址进行连接,但可以做到。
public static final String urlString = “jdbc:mysql://address=(protocol=tcp)(host=your-ipv6-address)(port=3306)/Library”;
Class.forName(driver);
public static final String user= "user";
public static final String password= "correctpass";
DriverManager.setLoginTimeout(getConnectionTimeOut());
dbConnection = DriverManager.getConnection(urlString,user,password);
试试上面的。由于从 mysql 连接读取地址,因此期望在冒号后读取端口,并且所有端口都是数字。由于您没有使用标准地址,它会 return 您在尝试解析端口时出错(所有数字都符合预期 - 但有字母,因此它会遇到数字格式异常)。如果您使用的是 IPV6,则需要将其声明为 IPV6。