MySQL语句小结(二)

作者: MOIC_Qu | 来源:发表于2020-01-09 18:51 被阅读0次

近期接触到一些mysql问题,最大连接数更改,进程监控,定时删sleep进程等

遇到_mysql_exceptions.OperationalError: (1040, 'Too many connections') 问题

​ 此报错的含义是太多的链接,超出了mysql默认的最大链接数,此时我们可以通过更改mysql设置解决此问题

​ 查看最大链接数然后修改最大链接数

需要注意的是命令重设的一些参数,在mysql重启后,会恢复到原来的默认值,如果想永久修改,需更改/etc/my.cnf

mysql> show variables like 'max_connections'; #查看mysql最大连接数
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 151   |
+-----------------+-------+
1 row in set (0.00 sec)

mysql> set global max_connections=1000; #修改最大连接数
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 1000  |
+-----------------+-------+
1 row in set (0.00 sec)

mysql> show global status like 'Max_used_connections'; #查看服务器响应最大连接数
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| Max_used_connections | 47    |
+----------------------+-------+
1 row in set (0.00 sec)

mysql> show status like 'Threads%'; #查看当前数据库运行状态
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_cached    | 0     |
| Threads_connected | 5     |
| Threads_created   | 79069 |
| Threads_running   | 1     |
+-------------------+-------+
4 rows in set (0.00 sec)
写脚本定时杀掉sleep的进程,缓解数据库负载压力

查看mysql内部进程

mysql> show  processlist; #查看进程列表
+-------+------+-----------+------+---------+------+-------+-------------------+
| Id    | User | Host      | db   | Command | Time | State | Info              |
+-------+------+-----------+------+---------+------+-------+-------------------+
| 79109 | root | localhost | db_1 | Sleep   |   91 |       | NULL              |
| 79117 | root | localhost | db_1 | Sleep   |   91 |       | NULL              |
| 79122 | root | localhost | db_1 | Sleep   |    2 |       | NULL              |
| 79169 | root | localhost | NULL | Query   |    0 | NULL  | show  processlist |
+-------+------+-----------+------+---------+------+-------+-------------------+
4 rows in set (0.00 sec)

killsleep.sh脚本

echo "show processlist" | mysql -uroot -p1111 | grep Sleep | awk '{ if( $6> 60 ) print ("kill ", $1,";")}' | mysql -uroot -p1111

脚本内容 -u用户名 -p密码

脚本的执行内容是 在mysql中执行 show processlist | 进入mysql的账号密码 |获得的列表选取含 Sleep的行 |然后执行 awk 语句 6是用时 循环识别 用时超过60的 拿到1 id 根据id 杀掉进程kill | 再进去mysql 因为是循环 每次都需要 进入

然后执行定时任务就好

[moic@localhost /]$ crontab -e #写入定时任务

5 * * * * cd /home/user/moic/test && sh -x killsleep.sh >> error.log

#保存即可
#就会每小时05的时候执行一次 可以根据自己需求调整定时任务执行周期

相关文章

  • MySQL语句小结(二)

    近期接触到一些mysql问题,最大连接数更改,进程监控,定时删sleep进程等 遇到_mysql_exceptio...

  • MySQL语句小结

    最近搭建web后端服务demo,有些直连数据库操作,整理了一些指令以及mysql安全防注入的python写法 增 ...

  • php操作mysql语句

    mysql语句 php操作mysql语句

  • centos7安装配置MySQL

    一、系统环境 二、MySQL安装执行下面语句安装MySQL 安装mysql和mysql-devel都成功,但是安装...

  • MySQL读书笔记

    一、MySQL命令&语句 MySQL使用标准的SQL数据语言形式。 二、数据类型 三、MySQL 事务 Atomi...

  • 2018-03-20

    MYSQL查询语句 MYSQL复杂操作语句 MYSQL多表查询方法 函数部分

  • BigData-MySQL总结大全(一)苏暖人

    BigData之MySQL总结大全 MYSQL常用的基本语句 MYSQL常用的基本语句 例:SELECT TOP ...

  • mysql用户管理、常用sql语句、mysql数据库备份恢复

    目录 一、mysql用户管理二、常用sql语句三、mysql数据库备份恢复 一、mysql用户管理 -授予所有权限...

  • mysql常用语句

    一、Mac端:打开MYSQL服务器语句:brew services start mysql关闭MYSQL服务器语句...

  • MySQL Sql语句(二)

    分页操作:使用limit(参数1,参数2)起始位置(参数1)=(第几页-1)*每页显示的条数(参数2) 1.分类表...

网友评论

    本文标题:MySQL语句小结(二)

    本文链接:https://www.haomeiwen.com/subject/pjcuactx.html