连接数
MySQL: ERROR 1040: Too many connections”的异常情况,造成这种情况的一种原因是访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力;另一种原因就是MySQL配置文件中max_connections值过小。
-
mysql的最大连接数
show variables like '%max_connections%';
-
服务器响应的最大连接数
show global status like 'Max_used_connections';
对于mysql服务器最大连接数值的设置范围比较理想的是:服务器响应的最大连接数值占服务器上限连接数值的比例值在10%以上,如果在10%以下,说明mysql服务器最大连接上限值设置过高. -
设置最大连接数值
set global max_connections=1000;
(重启mysql服务失效)
或
在my.ini配置文件[mysqld]下方添加,重启服务器,永久性
max_connections=1000
开启慢查询日志
注:只适应于小的项目、项目未上线或者紧急情况下可采用这种方式,一旦开启慢日志查询会增加数据库的压力,所以一般采用后台对数据操作时间写入日志文件中,每一周定时进行清除日志
查看日志存在位置show variables like 'log_%';
参数:
slow_query_log 慢查询开启状态,ON开启,OFF关闭
slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)
long_query_time 查询超过多少秒才记录
- 指定数据库
show databases;
use xxx;
- 查看慢查询情况
show variables like 'slow_query%';
(开启状态和日志存放位置)
show variables like 'long_query_time';
(默认查询超过10秒才记录) - 设置慢查询开启
set global slow_query_log='ON';
- 设置慢查询日志存放的位置
set global slow_query_log_file='D:\\mysql\\mysql-8.0.11-winx64\\Data\\slow.log';
- 设置查询超过1秒就记录
set global long_query_time=1;
(如果有时候用命令不起作用,那么可以关闭再打开)
3,4,5命令全局变量设置,重启mysql服务器会失效,可以采用配置文件配置重启,如 6
- 修改my.ini配置文件,在[mysqld]下方加入
[mysqld]
slow_query_log = ON
slow_query_log_file = D:\mysql\mysql-8.0.11-winx64\Data\slow.log
long_query_time = 1