在Java中远程连接阿里云的MySQL数据库时出现Communications link failure 的解决方案

3 篇文章 0 订阅

1.在登录打开MySQL后:

输入:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY'远程连接的密码' WITH GRANT OPTION;

上面的命令中%代表从任何主机都可连接MySQL服务器。

然后使用命令刷新

FLUSH PRIVILEGES

 

首先要确定Java中的连接代码有没有错误

package database;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class ALiyun {

 static final String URL = "jdbc:mysql://121.195.147.152:3306/abc?useUnicode=true&charcterEncoding=utf-8";  //(121.195.147.152)公网IP地址

	static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
	

	
	  //   数据库的用户名与密码,需要根据自己的设置
	    static final String NAME = "root";
	    static final String PWD = "123";//该密码是你在数据库中设置的连接密码
	 
	 public static void main(String[] args) {
	        Connection conn = null;
	        Statement stmt = null;
	        try{
	            // 注册 JDBC 驱动
	            Class.forName(JDBC_DRIVER);
	        
	            // 连接数据库
	            conn = DriverManager.getConnection(URL,NAME,PWD);
	 
	            System.out.println("连接数据库成功");
	        
	            // 执行查询

	            conn.close();
	        }catch(Exception e1){
	            e1.printStackTrace();
	        }finally{
	            // 关闭资源
	            try{
	                if(stmt!=null) stmt.close();
	                if(conn!=null) conn.close();
	            }catch(Exception e2){
	            	e2.printStackTrace();
	            }
	        }
	    }}

 

  2、查看连接mysql时间有关的系统变量:show variables like '%timeout%'

是否如图所示

1)interactive_timeout:
参数含义:服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。
参数默认值:28800秒(8小时)

(2)wait_timeout:
参数含义:服务器关闭非交互连接之前等待活动的秒数。
在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值,取决于客户端类型(由mysql_real_connect()

的连接选项CLIENT_INTERACTIVE定义)。
参数默认值:28800秒(8小时)

进行修改:

修改MySQL的参数,wait_timeout最大为31536000即1年,在my.cnf中加入: 
wait_timeout=31536000 
interactive_timeout=31536000 
重启生效,需要同时修改这两个参数。

使用命令进行修改:

vim /etc/my.cnf

按a进入输入模式,按ESC退出输入模式,然后按冒号键 :wq(保存并退出)

使用命令查看是否修改成功:

cat /etc/my.cnf

 

这里已经更改完成。

 

最后记得重启下服务器再进行连接,不然可能连接不成功。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值