JDBC连接MySQL抛Can`t get host name for your address异常的处理
来源:互联网 发布:c语言并查集简单例题 编辑:程序博客网 时间:2024/05/16 17:02
很多教程,教材和视频讲JDBC。上来第一章就会讲“与MySQL”连接,而且一般都没有任何错误,写了三行代码,完美连接。
public static void main(String[] args) throws SQLException, ClassNotFoundException {Class.forName( "com.mysql.jdbc.Driver" );String url = "jdbc:mysql://127.0.0.1:3306/aaa";Connection con = DriverManager.getConnection(url,"root","root");System.out.println(con);}神奇地是,自己照着写了代码连接,很可能出现以下错误:
本机root用户名和密码都是root,代码写得没问题。但就是无法连接MySQL。
更奇特的是,在这个情况下,Sqlyong还可以正常连接登录。用JDBC连接OracleSQL,连接也没问题。可以确定
1.不是代码的问题
2.不是JDBC配置的问题。
这就很令人头大了。
****************************************************************************************************************************************************************************************
这个问题的原因,查了多方面的资料,确定是Winsock底层出现的错误。可以开启命令提示符,输入:
netsh winsock reset来重置底层的winsock。
输入过程中防火墙会检测到并报出异常行为:
可以看到执行本条命令后,实质上是命令提示符运行了netsh工具,将注册表中的设置进行重置。直接点击允许此程序所有操作。
重启之后连接MySQL。可以看到连接成功,MySQL给出WARNING:
hu May 18 23:27:26 GMT+08:00 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
意思是在高版本MySQL中会有SSL声明方面的问题。在url字符串中加入: ?characterEncoding=utf8&useSSL=true 即可。
- JDBC连接MySQL抛Can`t get host name for your address异常的处理
- Navicat连接Mysql报1042- Can't get hostname for your address错误的解决办法
- 数据库-mysql-Can't get hostname for your address
- MySQL:1042 can't get hostname for your address
- MySQL 1042, "Can't get hostname for your address" 解决
- 关于MySQL问题:can't get hostname for your address
- MySQL数据库连接错误:Can't get hostname for your address
- Mysql问题:can't get hostname for your address
- MySqL遇到Can't get hostname for your address解决办法
- Rhyme/ Mysql "Can't get hostname for your address" 问题解决
- Mysql 访问,提示无法连接Can't get hostname for your address Error 1042
- 通过远程连接Mysql数据库,提示“can't get hostname for your address”
- MySQL连接远程数据库报错 1042Can't get hostname for your address
- 1042-Can't get hostname for your address , navicat无法连接mysql
- [Navicat] 连接Mysql错误 1042 Can't get hostname for your address
- MySql连接错误:Can‘t get hostname for your address解决办法之小白篇
- navicat 连接mysql 报1042错误 can't get hostname for your address
- MySQL有关1042 Can’t get hostname for your address的问题分析解决过程
- 文章标题
- 【BFS】POJ 3087 Shuffle'm Up
- Hibernate中自带ID生成策略中属性“ generator”的含义
- Entity Framework Core 数据库Migrations命令Update更新数据库中模型
- iOS 飞屏功能的实现(UDPSocket协议广播机制)
- JDBC连接MySQL抛Can`t get host name for your address异常的处理
- pl/sql过期不能使用问题
- SQL编码规范
- Oracle数据库中进行树形查询sql
- 父类使用<T>泛型 并通过注入方式 获取到实体类型
- 在MyEclipse快速搭建Hibernate
- 偏向锁,轻量级锁,自旋锁,重量级锁的详细介绍
- 生平第一章:关于android中的canvas的restore和save
- Kafka与其他MQ对比