Docker之MySQL主从连接提示:Communications link failure
今天在使用Apache ShardingSphere实现数据库读写分离功能,连接基于Docker的MySQL5.7 主从IP。SpringBoot程序提示如下错误信息:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure
错误的原因:MySQL服务在长时间不连接之后断开了,断开之后的首次请求会抛出这个异常
原因分析:
1、既然是长时间不连接之后断开了,那这个时间应该是可以设定的,或者现在mysql用的还是默认的值
2、如何查看现在的时间值,以及如何修改基于docker服务启动的MySQL。
查看默认值:
1、使用Native For 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小时)
温馨提示:在MySQL4 及其以下的版本,可以通过autoReconnect=true 配置属性解决连接自动恢复问题,如果是MySQL5及其以上版本,必须通过系统参数来控制。
结论:若要修改的话,需要同时修改这两个变量
连接时间值范围:在windows环境中:1-2147483s,
在Linux环境中:1-31536000s
Docker 下修改MySQL:MySQL5.7 在Docker 下的核心配置文件,是通过挂卷方式实现,所以我们仅仅只需要修改Docker 宿主主机所在挂载目录地址,修改对应文件即可。
docker 启动MySQL5.7:
docker run -p 3307:3306 --name mysql-master \-v /usr/local/mysql-master/log:/var/log/mysql \-v /usr/local/mysql-master/data:/var/lib/mysql \-v /usr/local/mysql-master/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=root \-d mysql:5.7
MySQL5.7 配置文件所在宿主主机的文件目录地址:/usr/local/mysql-master/conf
在my.cnf 文件,添加超时时间配置。
[mysqld]## 设置server_id,同一局域网中需要唯一server_id=101## 指定不需要同步的数据库名称binlog-ignore-db=mysql## 开启二进制日志功能log-bin=mall-mysql-bin## 设置二进制日志使用内存大小(事务)binlog_cache_size=1M## 设置使用的二进制日志格式(mixed,statement,row)binlog_format=mixed## 二进制日志过期清理时间。默认值为0,表示不自动清理。expire_logs_days=7## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致slave_skip_errors=1062## 设置超时时间wait_timeout=1814400interactive_timeout=1814400
重新启动Docker 服务及其重启MySQL服务,再查看连接时间配置:
Docker之MySQL主从连接提示:Communications link failure相关推荐
- Android jdbc连接mysql报错解决方案 (Communications link failure)
最近调试安卓连接mysql真是心态爆炸,快两天才搞出来.以下整理一些常见问题. 检查manifest文件里网络权限是否打开 检查数据库IP是否有问题(包括一些沙雕错误,比如是不是在ip首或尾多了个空格 ...
- com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure
线下环境可以运行,新搭建的线上环境报错.网上查找了一些资料,有的说是密码上多了空格 , 有的说是时区问题,也有的说要 url设置 useSSL=false,也有说DAO中有语法错误等等 .很多原因都会 ...
- 【已解决】caused by: com.mysql.cj.exceptions.cjcommunicationsexception: communications link failure
这个错误和之前博文中的错误原因一样,解决方法也一致. 解决方法请参考https://blog.csdn.net/handoking/article/details/81387721
- Druid 连接池 报错 com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
场景赘述 早晨查看项目前一天的实际运行日志,发现了 一个Springboot项目中的druid 连接池和 mysql 产生了异常信息,重连暂并未对系统产生影响 下面是具体报错信息: com.mysql ...
- 连接数据库报错com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure的解决方法
控制台报错 Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure com. ...
- Rejecting re-init Communications link failure
@[TOC](Rejecting re-init on previously-failed class java.lang.Class<com.mysql.cj.MysqlType>: j ...
- mac之idea连接MySQL数据库报com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
项目场景: 最近入手了一台MacBookPro(谨慎尝试,用惯了windos后使用感具别扭,需要大量时间来适应),下载了最新的idea和最新的mysql8.0.23,然后开始了漫长而艰辛的开始,各种没 ...
- 连接mysql异常Communications link failure
连接mysql 数据库的时候出现这个异常Communications link failure,原因:如果在wait_timeout秒期间内,数据库连接(java.sql.Connection)一直处 ...
- IDEA连接MySQL失败-[08S01] Communications link failure
一.问题现状描述 使用IDEA启动maven项目,报错连接MySQL数据库失败,尝试用IDEA的database插件,连接本地MySQL库(Windows10本机搭建) 报错结果如下: [08S01] ...
最新文章
- ML之SVM:基于sklearn的svm算法实现对支持向量的数据进行标注
- SIGIR 2019 | 为什么你的毛衣显胖又显黑?这个算法给你答案
- SQL SERVER怎么去掉重复数据?
- dofilter 无效_“鹅厂”商标注册成功,腾讯异议无效
- Spring Boot中的测试
- cocos2d-x for xna创建动画-人物行走
- Maven学习总结(51)——Maven 常用属性和常量说明
- 为什么在 Windows 下用 Ctrl+Z 退出 Python 而 Linux 下用 Ctrl+D 呢?
- 音视频的采集、编码、封包成 mp4 输出
- Bit,Byte,WORD,DWORD区别和联系
- AIX文件系统之概述
- CarPlay Wireless 使用fdk_aac库解码Raw AAC-LC AAC-ELD
- Java技术体系简介
- 也来谈谈自己做为面试官的面试流程
- docker gitlab 初始密码查看
- 雪花飘落代码java_JavaScript实现雪花飘落效果
- vb冒泡排序法流程图_vb数组排序-冒泡排序法
- 机器学习入门 线性回归及梯度下降
- Android 百度地图marker中图片不显示的解决方案
- Advances in Financial Machine Learning 导言 (附pdf下载链接)