Mysql异常:Communication link failure, message from server: "Can't get hostname for your address"的解决方法及验证
)
1.异常发现
在JDBC中用Eclipse与MySql通过DriverManager建立连接时,出现这样的错误(已导包):
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communication link failure, message from server: "Can't get hostname for your address"
其中建立连接代码如下(仅个人)
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JdbcText {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/e52?useUnicode=true&characterEncoding=UTF8";
//e52数据库确定已经存在,下面的引号里写自己数据库用户名和密码
String userName = "your username";
String passWord = "your passwpord";
Connection conn = null;
try {
conn = DriverManager.getConnection(url, userName, passWord);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(conn);
}
}
2.异常解决
代码不变。单击开始菜单 → 在框内输入服务 → 单击服务选项 → 找到MySQL(键盘按M可快速检索定位以M开头的服务名称) → 右键MySQL,单击属性,选择登录,将网络服务更改为本地系统账户,应用后重启此系统即可
3.验证测试
运行上述代码成功输出一个我的连接对象:
下面建立一个插入方法进一步测试:
public static void insert(){
conn = getConnection();
try {
Statement state = conn.createStatement();
String sql = "insert into dept values(50,'插入测试','测试');";
int num = state.executeUpdate(sql);
if (num == 1){
System.out.println("插入成功");
}else{
System.out.println("失败");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
结果:控制台显示插入成功,检查MySQL同样多出一行。
感谢参考连接:
(https://blog.youkuaiyun.com/zzti_erlie/article/details/53227343)