Mysql连接数过多、Mysql连接错误过多的问题处理
在使用Mysql的过程中,你总是会遇到这样那样的问题,每次去网上查找也相对比较麻烦,所以在此整理一下(以linux ubantu16 系统为例)。
=====================================================================
本文由 www.webfunny.cn 前端监控提供;只需要简单几步就可以搭建一套属于自己的前端监控系统,快来试试吧 ^ _ ^。
=====================================================================
1. mysql 连接数太多(SequelizeConnectionError: Too many connections)
这个就是最常见的问题了。因为我做的这个是前端监控系统,日志上报量比较大,所以经常会遇到连接数不够用的情况。 除了你要使用其他技术来缓解并发量,还需要适当的设置mysql数据库的最大连接数。那么怎么增加mysql的最大连接数呢,设置多大为合适呢,这又是一个比较麻烦的问题了。下边是我的一些浅见,仅供参考。
首先我们需要登录mysql, 进入mysql的命令行:
查看当前mysql的连接数:
mysql> show global status like 'Max_used_connections';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| Max_used_connections | 403 |
+----------------------+-------+
1 row in set (0.00 sec)
如何设置mysql的最大连接数呢?
第一种方法:通过mysql命令设置(这种方法是临时性的,重启mysql以后就会失效)
mysql> set GLOBAL max_connections=2000;
Query OK, 0 rows affected (0.00 sec)
第二种方法:进入mysql目录(/usr/local/mysql)找到my.cnf文件,添加如下配置(注意:最大连接数不要设置过大,有可能会在启动的时候爆掉哦),然后执行命令$: service mysql restart
[mysqld]
max_connections=1000
Mysql的最大连接数设置多少合适呢?
对照阿里云的TCP连接数来看一下,阿里云的TCP连接数可以看出瞬间并发量的多少,然后跟我们的数据库连接数做个对比。正常情况下TCP连接数为1K左右的时候,MySQL的连接数为400左右。本来瞬间的并发量能达到9K, 但是我将一部分流量导入到其他服务器上,所以现在最高的并发量能够达到3.4K。当最大3.4K并发量的时候,有两台服务器同时访问mysql,我的数据库连接数是1153个左右。

所以,如何设置mysql最大连接数,可以参考一下我的这个数值。
2. Mysql连接错误太多(SequelizeConnectionError: Host 'xx.xx.xx.xx' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts')
这个问题并不常见,因为一般mysql的默认值是100。只有当同一个IP对mysql访问出现100次连接错误的时候,mysql就会拒绝这个ip的请求访问。因为我的日志服务和数据库是分离的,所以,经常会在量大的时候出现这个问题。
查看连接报错配置:
mysql> show variables like '%max_connect_errors%';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| max_connect_errors | 100 |
+--------------------+-------+
1 row in set (0.01 sec)
单个ip连接报错查询:
select SUM_CONNECT_ERRORS as count from performance_schema.host_cache where ip='xxx.xxx.xxx.xxx'
设置连接数报错最大数量:
mysql> set GLOBAL max_connect_errors=1000;
Query OK, 0 rows affected (0.00 sec)
3. mysql字符集配置错误,导致无法插入数据库(Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation)
在数据库执行查找的命令,判断条件含有特殊字符,再执行的时候报了以上错误;
查看字段编码发现是 latin1 字符集的latin1_german1_ci排序规则,而数据库是utf-8编码,确定错误是编码导致。
修改数据库字段为utf-8编码 再次执行 顺利查出结果
Mysql连接数过多、Mysql连接错误过多的问题处理的更多相关文章
- 微软云Linux服务器 Mysql、tomcat远程连接错误解决办法
在微软云linux服务器成功配置好mysql.tomcat,通过外部链接却发现一直错误.Mysql 一直提示错误代码2003, tomcat连接一直提示EOF. 反复检查配置都无问题,最后得知是微软云 ...
- MYSQL与Navicat的连接错误问题
唱,跳,RAP,Basketball MySQL版本安装 遇到的一个坑(密码加密规则被修改导致Navicat连接不上) 众所周知,老师的一些任务,往往做起来不是很困难,只要按着步骤就可以,但是在程序的 ...
- 连接mysql用mysql_connect不能连接
用mysqli_connect就可以解决. mysqli_array()有连个参数,第一个是连接mysql名. php遇到这个警告Warning: Use of undefined constant ...
- mysql 连接数过多内存增长过快
mysql连接允许长连接和短链接,但是本身建立连接会有很大开销所以一般连接mysql会使用长连接.但是全部是使用长连接后,可能会出现mysql有时占用内存涨的特别快,这是因为mysql在执行过程中临时 ...
- 等保审核 --- MySQL密码复杂度--和连接错误超时等
系统版本: Centos 7 MySQL版本: 5.7.19 架构: 主从架构 审计插件: validate_password.so(数据库自带5.6后版本都拥有此插件) 操作过程: 1). 安装va ...
- 【先定一个小目标】怎么解决mysql不允许远程连接的错误
最近使用Navicat for MySQl访问远程mysql数据库,出现报错,显示“1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to ...
- Navicat for mysql 远程连接 mySql数据库10061、1045错误
原文地址:http://www.111cn.net/database/mysql/46377.htm 有朋友可能会碰到使用Navicat for mysql 远程连接 mySql数据库会提示10061 ...
- 我用工具怎么连接不上mysql数据库的? MySql access denied for user错误
MySql access denied for user错误 方法/步骤 MySql远程连接时的"access denied for user **@**"错误,搞的我很头大, ...
- 解决服务器连接错误Host ‘XXX’ is not allowed to connect to this MySQL server
这段时间在研究火车头的入库教程,在“配置登陆信息和数据库(mysql)”连接中,出现“服务器连接错误Host 'XXX' is not allowed to connect to this MySQL ...
随机推荐
- Educational Codeforces Round 78 (Rated for Div. 2) C - Berry Jam(前缀和)
- python3 pathlib库中的Path类的使用
调用库 from pathlib import Path 获取 Path 的文件名 Path.name 参考 https://blog.csdn.net/amanfromearth/article/d ...
- 请教网友:#pragma pack(push) #pragma pack(pop)无效
//try 一 try #pragma back(push) #pragma pack(2) struct E { char a; short b; double c; float d; char e ...
- libevent笔记1:安装及DEMO
本篇简单记录了libevent的安装过程及基础的先进先出管道Demo,其中demo来自这篇博客,安装过程在这篇博客 实验环境 系统:Ubuntu 18.04.3 libevent版本:libevent ...
- Windows进程间各种通信方式浅谈(转)
转自 https://blog.csdn.net/microzone/article/details/7044266 权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原 ...
- NanoPi NEO Plus2开发环境搭建
1.前言 NanoPi NEO Plus2是友善电子推出的一款非常小巧精致的开源硬件,该开源硬件的CPU是基于Allwinner公司的64位四核ARM Cortex-A53处理器H5,并且内置了六核M ...
- 【转帖】H5 手机 App 开发入门:概念篇
H5 手机 App 开发入门:概念篇 http://www.ruanyifeng.com/blog/2019/12/hybrid-app-concepts.html 作者: 阮一峰 日期: 2019年 ...
- SpringCloud Stream使用案例
官方定义 Spring Cloud Stream 是一个构建消息驱动微服务的框架. 应用程序通过 inputs 或者 outputs 来与 Spring Cloud Stream 中binder 交互 ...
- myeclipse安装android开发环境全过程
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/liang_824/article/det ...
- django开发_七牛云CNAME解析
CNAME 简介 CNAME 即指别名记录,也被称为规范名字.这种记录允你将多个名字映射到同一台计算机. 当需要将域名指向另一个域名,再由另一个域名提供 ip地址,就需要添加 CNAME 记录. 为什 ...