Code Bye

java连接数据库报错

 

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communication link failure, message from server: “Can””t get hostname for your address”代码如下

try{

//加载数据库驱动

Class.forName(“com.mysql.jdbc.Driver”);

//数据库连接字符串

String url=”jdbc:mysql://localhost:3306/test”;

//数据库用户名

String username = “root”;

String password=”root”;

//创建connection连接

Connection conn=DriverManager.getConnection(url,username,password);

if(conn!=null){

out.println(“数据库连接成功”);

conn.close();

}else{

out.println(“数据库连接失败”);

}

}catch(Exception e){

out.println(e);

}

代码应该没问题,之前还能运行的,昨天换了个新版本的Mysql数据库后就一直抱着个错误了,应该是数据库的原因,请高手帮帮忙

#1

5分

换了新版本的mysql,那是否驱动也不一样了,看看是不是jar包的问题
#2
驱动也换了新版本带来的驱动,还是不行
#3

5分

解决方法如下:

编辑my.ini

在[mysqld]节点下新增或修改如下两行行

skip-name-resolve #忽略主机名的方式访问

lower_case_table_names=1 #忽略数据库表名大小写

重启mysql服务,问题得到解决。

帮你从网上找的,看看是不是这个问题,希望对你有帮助

#4
顺带把网址给你贴一下http://blog.sina.com.cn/s/blog_794b22b40101ejao.html
#5
不过看到还有中方式说是把mysql.user表的Host值为localhost的记录都改为127.0.0.1就可以了,那可能就是主机映射的问题,如果这种方式可以解决,我觉得还是这种好点,比忽略更科学
#6
这个版本没有找到你说的:my.ini找到这个:my-default.ini里面有那个节点,改了之后还是没有用。
#7
尝试了一下,爆同样的错误
#8

3分

“Can””t get hostname for your address”,这不是代码的问题,是你的数据库的问题
#9
数据库应该怎么改
#10

2分

开启数据库网络访问
#11
我在ip那边的复选框内勾选了啊
#12

5分

建议卸载重装,有的时候,不小心碰到什么设置,花很多时间去找出来,得不偿失,时间成本太高,毕竟不是经常跟安装打交道。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明java连接数据库报错