db mysql / mysql cluster 5.7.19 / my.cnf / group_concat_max_len

s

https://www.cnblogs.com/silentmuh/p/9473557.html

 

MySQL提供的group_concat函数可以拼接某个字段值成字符串,如 select group_concat(user_name) from sys_user,默认的分隔符是 逗号,即"," ,如果需要自定义分隔符可以使用 SEPARATOR

如:select group_concat(user_name SEPARATOR ‘_‘)  from sys_user

但是如果 user_name  拼接的字符串的长度字节超过1024 则会被截断。

通过命令 "show variables like ‘group_concat_max_len‘ " 来查看group_concat 默认的长度:

 

操作方法:

(1)在MySQL配置文件中加入:

group_concat_max_len = 102400

(2)更简单的操作方法,执行SQL语句:

SET GLOBAL group_concat_max_len = 102400;

SET SESSION group_concat_max_len = 102400;

注意:该方法缺点是重启服务后设置失效

 

 

案例一:

1、如果存在group_concat,最好在jdbc链接后增加长度参数

jdbc:mysql://127.0.0.1:3306/mylindows?sessionVariables=group_concat_max_len=102400

2、ES中想用JSON数组可以通过filter插件

filter {

        json {

               add_tag =>[]

               source => "rel"

               target => "relLabel"

               remove_field=>["rel"]

       }

}

示例:

input {
        jdbc {
                jdbc_driver_library => "/root/mysql-connector-java-5.1.22.jar"
                jdbc_driver_class => "com.mysql.jdbc.Driver"
                jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/mylindows?sessionVariables=group_concat_max_len=102400"
                jdbc_user => "root"
                jdbc_password => "123456"
                schedule => "* * * * *" #cron表达式,设置多久调度一次
                jdbc_default_timezone => "Asia/Shanghai"
                jdbc_paging_enabled => "true" #开启分页查询
                jdbc_page_size => "10000" #每页10000条数据
                statement_filepath => "/opt/lindows.sql" #自定义查询sql
                lowercase_column_names => false #关闭自动小写转化,如果开启,诸如commId会被转化成commid
                use_column_value => false #如果开启则是用指定value作为最后查询的条件,默认使用当时时间
                last_run_metadata_path => "/opt/lindows.txt" #记录最后一次查询的条件,默认是时间
        }
}

filter {
        json {
                add_tag =>[]
                source => "rel"
                target => "relLabel"
                remove_field=>["rel"]
    }
}

output {
        elasticsearch {
                hosts => [ "192.168.1.2:9200","192.168.1.3:9200","192.168.1.4:9200" ] #集群地址
                index => "lindows_index" #指定索引名称
                document_id => "%{newsId}" #指定文档名称,需要和mysql.sql中的一个字段名相同
                document_type => "news" #指定类型名
        }

}

 

 

end


db mysql / mysql cluster 5.7.19 / my.cnf / group_concat_max_len

上一篇:浅析C#种的反射


下一篇:Golang学习系列第四天:操作数据库PostgreSQL