问题描述
- 远程连接服务器上,在自己的帐号下建立java连接mysql的程序,但是一直连接不上
-
我是通过远程连接在实验室机房的一台机器(linux操作系统)上,然后在该机器上建立JAVA程序,其中涉及到连接mysql数据库的操作,但是在获取连接时一直提示“Communications link failure“,涉及的代码为:connect=DriverManager.getConnection(""jdbc:mysql://localhost:3306/pyq_test""root""120116"");
解决方案
需要服务器端配置
/etc/mysql/my.cnf
找到 bind-address =127.0.0.1 将其注释掉;//作用是使得不再只允许本地访问;
重启mysql:/etc/init.d/mysql restart;
解决方案二:
查查看,MySQL服务Service启动了吗?
解决方案三:
MYsql 权限 是否 为% 任何一台电脑都可以连?
解决方案四:
用mysql服务登陆mysql,查看权限:
show grants for root;
给root用户
GRANT ALL ON pyq_test.* TO root@% IDENTIFIED BY 'root';
flush privileges;
解决方案五:
url的ip地址有问题啊,你应该填你实验室机器的ip地址啊。
解决方案六:
换成127.0.0.1试试,以前好像遇见过,不是大问题
解决方案七:
最近我也碰到了相似的问题,问题可能很多种,IP问题,数据源配置问题等等。需要一个一个排查吧
我遇到的我都给出解答了,看看能不能给你些思路
http://blog.csdn.net/zhoubin1992/article/details/45851161
http://blog.csdn.net/zhoubin1992/article/details/45951405
Connection conn = null;
try{
Class.forName(""com.mysql.jdbc.Driver"").newInstance();
conn=DriverManager.getConnection(""jdbc:mysql://localhost:3306/mstx""root""XXX"");
}
解决方案八:
url的错误啊,换为你实验室的地址啊
解决方案九:
你的url有问题,应该配成服务器的IP地址,i这样是访问你本机
解决方案十:
jdbc:mysql://localhost:3306
localhost 是特指本机ip,相当于 127.0.0.1; 程序会直接请求本机的3306端口。
你应该将 localhost替换成服务器的ip地址。