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服务才生效。

  • 相关阅读:
    如何使用 Python 進行字串格式化
    骨牌摆放问题 POJ 2411(状态压缩DP)
    ACM/OI中C++常用优化(实用/调试/技巧)代码(语法)
    Windows 系统如何完全卸载 VSCode
    Python 在VSCode中使用
    第十一场训练赛
    L1-046 整除光棍 (20分)
    Problem 330A
    POJ 2187 Beauty Contest (凸包 旋转卡壳)
    程序员:写作能收获什么?
  • 原文地址:https://www.cnblogs.com/rusking/p/13305176.html
Copyright © 2011-2022 走看看