zoukankan      html  css  js  c++  java
  • MySQL show full processlist 以及group_concat_max_len参数设置

    查询Mysql当前正在运行的SQL语句:
    show full processlist或者show processlist

    结果都是从information_schema.processlist表取的结果,所以也可以主直接查询该表
    select info from information_schema.processlist;

    但是如果 info 字段值(SQL语句)长度字节超过1024 则会被截断。

    mysql> show variables like 'group_concat_max_len' ;--默认长度为1024
    +----------------------+-------+
    | Variable_name | Value |
    +----------------------+-------+
    | group_concat_max_len | 1024 |
    +----------------------+-------+

    mysql> SELECT @@global.group_concat_max_len;
    +-------------------------------+
    | @@global.group_concat_max_len |
    +-------------------------------+
    | 1024 |
    +-------------------------------+

    临时解决办法:
    如果是生产环境下,不能擅自重启MySQL服务,则可以通过语句设置group_concat的作用范围,如:
    SET GLOBAL group_concat_max_len=-1;
    或者
    SET SESSION group_concat_max_len=-1;

    (-1为最大值或根据实际需求设置长度)。
    之后再执行show full processlist,就可以看到完整的info字段值了。

    mysql> SET SESSION group_concat_max_len=-1;---奇怪,按照该方法设置Session和Global的group_concat_max_len为-1之后,查看结果变为4。
    Query OK, 0 rows affected, 1 warning (0.00 sec)

    mysql> show variables like "%len";
    +----------------------+-------+
    | Variable_name | Value |
    +----------------------+-------+
    | ft_max_word_len | 84 |
    | ft_min_word_len | 4 |
    | group_concat_max_len | 4 |
    +----------------------+-------+
    3 rows in set (0.00 sec)


    show processlist时,info字段同样被截断。所以,上面的设置没有生效。

    重新设置为group_concat_max_len=20480;

    mysql> SET SESSION group_concat_max_len=20480;
    Query OK, 0 rows affected (0.00 sec)

    mysql> show variables like "%len";
    +----------------------+-------+
    | Variable_name | Value |
    +----------------------+-------+
    | ft_max_word_len | 84 |
    | ft_min_word_len | 4 |
    | group_concat_max_len | 20480 |
    +----------------------+-------+
    3 rows in set (0.00 sec)

    mysql>

    之后再执行showshow processlist时,info字段没有被截断,设置生效。

    但是,该设置只对当前会话生效,我们可以在mysql的配置文件my.cnf配置文件中,新增加如下内容:
    group_concat_max_len=20480

    需要重启mysqld服务才生效。

  • 相关阅读:
    HDU 1754线段树基本操作,建树,更新,查询
    用第三方下载工具下载官方XCode独立安装包的方法
    解决Windows平台通过cURL上传APP到蒲公英pgyer平台时无法使用中文升级描述的问题
    Cygwin 版本的 Curl 安装,提取,使用笔记
    Android Gradle 引用本地 AAR 的几种方式
    VM虚拟机快照还原效果实现方式
    插入中文错误ERROR 1406 (22001): Data too long for column 'name' at row 1
    mysql初始化默认为空的密码修改
    性能测试学习计划(转)
    context-param和init-param区别
  • 原文地址:https://www.cnblogs.com/rusking/p/13305176.html
Copyright © 2011-2022 走看看