MySQL异常问题排查

MySQL异常问题排查

  • 查看MySQL进程

    如果存在“太多连接”异常情况则不能使用这一账户查看异常,所及建议保留一个额外的连接以供有权限的账户使用SUPER权限,以确保管理员始终能连接和检查系统使用这一权限。

    • show processlist

      或者show full processlist。如果不使用该FULL关键字,则每个语句的前100个字符都将显示在该Info字段中。

    • %MySQL_HOME%/bin/mysqladmin processlist

      不登录mysql可以用这一方法查看

    • INFORMATION_SCHEMA PROCESSLIST

      查看该表得到信息和上面两种方法一致

    • performance_schema.threads表
      访问threads表不需要互斥锁,对服务器性能影响最小。INFORMATION_SCHEMA.PROCESSLIST和SHOW PROCESSLIST由于需要互斥锁而具有负面的性能后果。performance_schema.threads还显示有关后台线程,哪些信息在INFORMATION_SCHEMA.PROCESSLIST和SHOW PROCESSLIST中没有,这意味着performance_schema.threads可以用来监视活动的其他线程信息源。

  • kill mysql进程
    可以通过mysql安装路径下的bin/mysqladmin 脚本杀掉mysql进程

    示例:

    [root@shuju-shumeng-qianzhiku bin]# ./mysqladmin processlist -uroot -pDtDream0209
    mysqladmin: [Warning] Using a password on the command line interface can be insecure.
    +-----+------+------------------+-----------+---------+------+----------+------------------+
    | Id  | User | Host             | db        | Command | Time | State    | Info             |
    +-----+------+------------------+-----------+---------+------+----------+------------------+
    | 261 | root | 2.82.13.21:49573 | qianzhiku | Sleep   | 0    |          |                  |
    | 348 | root | localhost        |           | Query   | 0    | starting | show processlist |
    +-----+------+------------------+-----------+---------+------+----------+------------------+
    
    [root@shuju-shumeng-qianzhiku bin]# ./mysqladmin kill 348  -uroot -pDtDream0209
    
  • 过多sleep进程的优化处理

    如果发现过多的sleep进程,可能会导致“过多连接”问题,需要查看当前的连接回收设置是否需要修改

    Mysql> show variables like “%timeout%”;
    
    +-----------------------------+----------+
    | Variable_name              | Value    |
    +-----------------------------+----------+
    | connect_timeout            | 10      | 
    | delayed_insert_timeout      | 300      | 
    | innodb_flush_log_at_timeout | 1        | 
    | innodb_lock_wait_timeout    | 50      | 
    | innodb_rollback_on_timeout  | OFF      | 
    | interactive_timeout        | 28800    | 
    | lock_wait_timeout          | 31536000 | 
    | net_read_timeout            | 30      | 
    | net_write_timeout          | 60      | 
    | slave_net_timeout          | 3600    | 
    | wait_timeout                | 28800    | 
    +-----------------------------+----------+
    11 rows in set (0.00 sec)
    

    interactive_timeout | 28800

    wait_timeout | 28800

    可以看到还是默认配置8个小时,编辑my.cnf配置文件,在【mysqld】下添加下面内容:

    wait_timeout=120
    interactive_timeout=120
    

    重启mysql

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值