MySQL--数据库连接异常问题汇总
========================================================
Name or service not known
错误消息:
[Warning] IP address 'xxx.xxx.xx.xxx' could not be resolved: Name or service not known
错误原因:
MySQL数据库服务器上没有配置/ect/hosts,也没有DNS服务,导致MySQL服务线程解析IP对应的主机名时发生失败。
解决办法:
使用参数--skip-name-resolve来禁用DNS的主机名解析功能,禁用该功能后,在MySQL授权表里面,只能使用IP地址。
配置my.cnf中参数为:
skip_host_cache
skip-name-resolve=1
========================================================
Aborted Connections类错误
错误消息:
[Note] Aborted connection 854 to db: 'employees' user: 'josh'
客户端无法正常连接MySQL数据库,主要原因:
1、用户账号不正确
2、用户权限不足
3、连接包存在问题(网络丢包等问题)
4、建立连接时间超过 connect_timeout 参数的阀值
========================================================
Aborted_clients类错误
错误原因:
客户端成功连接MySQL数据库但非正常断开或者异常中止,主要原因有:
1、客户端应用关闭前没有正常调用mysql close()方法
2、客户端建立连接后长时间未向MySQL发出请求,休眠时间超过 wait_timeout 或 interactive_timeout 两个参数
3、客户端在数据传输过程中非正常关闭。
========================================================
No operations allowed after connection closed
异常信息:
Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
异常原因:
应用服务器连接数据库服务器后,长时间未使用而导致连接空闲时间超过数据库配置“wait_timeout”的阈值,MySQL自动将这些连接断开,但应用服务器并不知晓该连接失效,再次使用这些连接时就可以报错。
解决办法:
1、增到MySQL参数“wait_timeout”的值
2、减少 Connection pools 中 connection 的 lifetime
3、应用服务器定期检查连接池中各连接的有效性。
========================================================
Cannot assign requested address
问题描述:
使用python+MySQLdb来收集几百个MySQL数据库节点的数据库信息,每个MySQL数据库节点进行1000+次的数据库查询,并将查询结果插入的本地数据库中上(数据库服务器与程序运行在同一服务器中),同样造成1000+的数据库插入,在程序运行中,不定期出现连接失败的异常,异常信息为:
2003,Can’t connect to MySQL server on ‘XXX.XXX.XXX.XXX′(99)
错误代码99含义为:
OS error code 99: Cannot assign requested address
表示无法分配本地地址资源,socket无法创建。
在Linux级别使用命令 netstat -anp |grep TIME_WAIT 可以发现有大量的TIME_WAIT,超过1W+的等待:
问题原因:
在程序运行过程中,运行程序的服务器与其他MySQL数据库服务器频繁建立连接并执行MySQL命令,当MySQL命令执行完成后,TCP连接被关闭后处于TIME_WAIT状态,TCP连接未被及时释放而导致TCP连接端口占满不可用。
解决办法:
配置TCP连接可以重用和快速回收,在文件/etc/sysctl.conf中加入以下代码:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
然后使用/sbin/sysctl -p 命令使配置文件生效。
配置完成后,在程序运行时仍存在大量(超过1W+)处于TIME_WAIT状态的TCP连接,但未再出现连接失败的情况。
相关知识:
net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
MySQL--数据库连接异常问题汇总的更多相关文章
- mysql数据库连接异常问题(总结)
mysql数据库连接异常问题(总结) 1.1 前言 最近项目由1个数据源增加至了3个数据源(连接池使用C3P0),结果各种奇葩的数据库连接问题接踵而至,为防止将来再次遇到同样的问题不犯同样错误,现 ...
- 【MySql】数据库连接异常:Thelastpacketsentsuccessfullytotheserverwas0millisecondsago
参考链接:http://blog.sina.com.cn/s/blog_7540bf5f0102xjpk.html 最近新入职,用了新版的mysql8数据库,结果连接数据库时出现了问题,报了几个异常, ...
- 查找Mysql数据库连接jar包和对应的Driver和Url
以前写jdbc连接向来都是直接copy,对于连接数据库的jar包在哪下载,对应的Driver类是哪一个,数据库连接串怎么找等等都没有做过,今天从零开始整了一遍. 使用的数据库是Mysql 一.已安装了 ...
- Python3 MySQL 数据库连接 -PyMySQL
Python 3 操作mysql http://www.runoob.com/python3/python3-mysql.html Python3 MySQL 数据库连接 本文我们为大家介绍 Pyt ...
- mysql主主复制汇总整理
mysql主主复制汇总整理 一.Mysql主主.主从复制主要思路: 1.mysql复制实质: 就是其他的MySQL数据库服务器将这个数据变更的二进制日志在本机上再执行一遍,因此非常重要的一点是mysq ...
- tcp_tw_recycle参数引发的数据库连接异常
[问题描述] 开发反馈有个应用在后端数据库某次计划性重启后经常会出现数据库连接异常问题,通过监控系统的埋点数据,发现应用连接数据库异常有两类表现: 其一:连接超时 131148.00ms To ...
- TR2021_0000偶发数据库连接异常问题排查
[问题描述] 数据库连接异常是很难排查的一类问题.因为它牵涉到应用端,网络层和服务器端.任何一个组件异常,都会导致数据库连接失败.开发遇到数据库连接不上的问题,都会第一时间找DBA来协助查看,DBA除 ...
- 一个简单的MySql数据库连接池的实现
package cn.hc.connectionPool; import java.io.IOException; import java.io.InputStream; import java.sq ...
- 报表开发工具中mysql数据库连接编码转化失效解决方案
1. 问题描述 在报表开发工具FineReport中,mysql数据库连接通过数据连接编码转换进行编码的转换,在通过报表录入往数据库中录入中文数据的时候,总是出现乱码,这个该怎么解决呢? 2. 解决方 ...
- Mysql数据库连接、查询、记录集操作代码
Mysql数据库链接代码 function dbConnect($hostname,$username,$pass,$db_name,$pconnect =0) { $func=empty($pcon ...
随机推荐
- Observer,观察者模式,C++描述
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- `define、parameter、localparam三者的区别(转)
`define: 可以跨模块的定义,写在模块名称上面,在整个设计工程都有效.一旦‘define指令被编译,其在整个编译过程中都有效.例如,通过另一个文件中的`define指令,定义的常量可以被其他文件 ...
- JDK的下载及配置
下载地址,为了兼容最好安装1.8版本 jdk1.8:http://jbox.jd.com/quickshare/d2wheyazjtdccshou2dbo24roejdk1.7:http://jbox ...
- Problem D: 求(x-y+z)*2
Description 编写一个程序,求解以下三个函数: f(x,y,z)=2*(x-y+z) f(x,y) =2*(x-y) f(x) =2*(x-1) 函数调用格式见append.cc. ...
- 18-09-08 关于Linux 的安装遇到的一些小坑
具体参考我的有道笔记 备注 那个网络问题已经解决 先自动选择打上勾 然后在进行选择 并且正确输入 IP地址之类的 ====用utrallo 制作centos7.0 报错 以下是新的工具有效===== ...
- pthread库实现一个简单的任务池
pthread库实现一个简单的任务池 类关系图: 说明: 1:TaskManager类管理Task类,Task类是一个纯虚类; 2:ThreadManager类管理Th ...
- (Object String 类中的方法练习)
package com.zs.demo1; public class Demo1 { public static void main(String[] args) { fun1(); fun2(); ...
- hbuilder注意事项
App开发注意事项App开发注意事项 单个页面由多个webView组成注意事项. 有两种不同的加载方式. 1.在加载主webView时,初始化Init()时就加载子页面, 此时为异步加载! 2.在主w ...
- this -- apply或call调用
apply 和 call 这两个方法可以切换函数执行的上下文环境,也就是改变this绑定的对象.apply和call比较类似,区别在于传入参数时一个要求是数组,一个要求是分开传入.所以我们以apply ...
- freemarker 获取当前日期
在freemarker中获取当前日期:${.now}获取当前日期并比较:<#if holdDate?date gt .now?date>.........</#if> 如果要做 ...