在使用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连接错误过多的问题处理的更多相关文章

  1. 微软云Linux服务器 Mysql、tomcat远程连接错误解决办法

    在微软云linux服务器成功配置好mysql.tomcat,通过外部链接却发现一直错误.Mysql 一直提示错误代码2003, tomcat连接一直提示EOF. 反复检查配置都无问题,最后得知是微软云 ...

  2. MYSQL与Navicat的连接错误问题

    唱,跳,RAP,Basketball MySQL版本安装 遇到的一个坑(密码加密规则被修改导致Navicat连接不上) 众所周知,老师的一些任务,往往做起来不是很困难,只要按着步骤就可以,但是在程序的 ...

  3. 连接mysql用mysql_connect不能连接

    用mysqli_connect就可以解决. mysqli_array()有连个参数,第一个是连接mysql名. php遇到这个警告Warning: Use of undefined constant ...

  4. mysql 连接数过多内存增长过快

    mysql连接允许长连接和短链接,但是本身建立连接会有很大开销所以一般连接mysql会使用长连接.但是全部是使用长连接后,可能会出现mysql有时占用内存涨的特别快,这是因为mysql在执行过程中临时 ...

  5. 等保审核 --- MySQL密码复杂度--和连接错误超时等

    系统版本: Centos 7 MySQL版本: 5.7.19 架构: 主从架构 审计插件: validate_password.so(数据库自带5.6后版本都拥有此插件) 操作过程: 1). 安装va ...

  6. 【先定一个小目标】怎么解决mysql不允许远程连接的错误

    最近使用Navicat for MySQl访问远程mysql数据库,出现报错,显示“1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to ...

  7. Navicat for mysql 远程连接 mySql数据库10061、1045错误

    原文地址:http://www.111cn.net/database/mysql/46377.htm 有朋友可能会碰到使用Navicat for mysql 远程连接 mySql数据库会提示10061 ...

  8. 我用工具怎么连接不上mysql数据库的? MySql access denied for user错误

    MySql access denied for user错误 方法/步骤   MySql远程连接时的"access denied for user **@**"错误,搞的我很头大, ...

  9. 解决服务器连接错误Host ‘XXX’ is not allowed to connect to this MySQL server

    这段时间在研究火车头的入库教程,在“配置登陆信息和数据库(mysql)”连接中,出现“服务器连接错误Host 'XXX' is not allowed to connect to this MySQL ...

随机推荐

  1. contest2 CF989 div2 ooox? ooox? oooo?

    题意 div2C (o) 在\(小于50*50\)的棋盘上放\(A, B, C, D\)四种花, 并给出每种花的连通块数量\(a, b, c, d(\le 100)\), 输出一种摆法 div2D ( ...

  2. Flask 中的 Render Redirect HttpResponse

    1.Flask中的HTTPResponse 在Flask 中的HttpResponse 在我们看来其实就是直接返回字符串 2.Flask中的Redirect 每当访问"/redi" ...

  3. GCD(洛谷 2568)

    题目描述 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 输入格式 一个整数N 输出格式 答案 输入输出样例 输入 #1 4 输出 #1 4 说明/提示 ...

  4. ACT开发初步(一)

    ACT的全称是Application Customization Toolkit,是面向ANSYS系列产品的统一的二次开发平台.利用基于Python的API(Application Programmi ...

  5. shell脚本监控k8s集群job状态,若出现error通过触发阿里云的进程监控报警

    #!/bin/bash while [ 1 ] do job_error_no=`kubectl get pod -n weifeng |grep -i "job"|grep -c ...

  6. windows server 2016 安装网卡驱动

    首先,联网分解为两个问题,一.WLAN(无线网).二.以太网(有线网) 一 .WLAN问题解决方案 1.打开服务器管理器 2.添加角色和功能 3.一直点下一步到“功能”,勾选 DirectPlay 和 ...

  7. python中进程、线程、协程简述

    进程 python中使用multiprocessing模块对进程进行操作管理 进程同步(锁.信号量.事件) 锁 —— multiprocessing.Lock 只要用到了锁 锁之间的代码就会变成同步的 ...

  8. flume参数解析+启动参数解析

    flume参数: #example.conf:单节点Flume配置 #命名此代理上的组件 a1.sources = r1 a1.sinks = k1 a1.channels = c1 #描述/配置源 ...

  9. [转帖]自动交互式脚本--expect

    自动交互式脚本--expect https://www.cnblogs.com/zhuiluoyu/p/4873869.html 我们经常会遇到一些需要与服务器程序打交道的场景,比如,从登陆某个服务器 ...

  10. DataTable Linq Group Count where写法

    DataTable dataTable = new DataTable(); dataTable.Columns.Add("username", typeof(string)); ...