即使更改my.cnf文件后,group_concat_max_length系统变量也未更改

问题描述:

我目前已在我的本地系统上安装了MySQL版本5.6。我想永久性地将group_concat_max_length系统变量设置为某个值。 当我在mysql终端中使用 set global group_concat_max_len = 100000; 命令时,该值被设置,但值在重新启动时更改为默认值。 我也更改了my.cnf文件并将其放在[mysqld]标题下。即使更改my.cnf文件后,group_concat_max_length系统变量也未更改

任何人都可以提出什么可能是问题?

编辑: 的my.cnf /etc/init.d/boot.d中

 

    ... 
    SELF=$(cd $(dirname $0); pwd -P)/$(basename $0) 
    CONF=/etc/mysql/my.cnf 
    MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf" 

    # priority can be overriden and "-s" adds output to stderr 
    ERR_LOGGER="logger -p daemon.err -t /etc/init.d/mysql -i" 
    ... 

 

    # 
    # The MySQL database server configuration file. 
    # 
    # You can copy this to one of: 
    # - "/etc/mysql/my.cnf" to set global options, 
    # - "~/.my.cnf" to set user-specific options. 
    # 
    # One can use all long options that the program supports. 
    # Run program with --help to get a list of available options and with 
    # --print-defaults to see which it would actually understand and use. 
    # 
    # For explanations see 
    # http://dev.mysql.com/doc/mysql/en/server-system-variables.html 

    # This will be passed to all mysql clients 
    # It has been reported that passwords should be enclosed with ticks/quotes 
    # escpecially if they contain "#" chars... 
    # Remember to edit /etc/mysql/debian.cnf when changing the socket location. 
    [client] 
    port  = 3306 
    socket  = /var/run/mysqld/mysqld.sock 

    # Here is entries for some specific programs 
    # The following values assume you have at least 32M ram 

    # This was formally known as [safe_mysqld]. Both versions are currently parsed. 
    [mysqld_safe] 
    socket  = /var/run/mysqld/mysqld.sock 
    nice  = 0 

    [mysqld] 
    # 
    # * Basic Settings 
    # 
    user  = mysql 
    pid-file = /var/run/mysqld/mysqld.pid 
    socket  = /var/run/mysqld/mysqld.sock 
    port  = 3306 
    basedir  = /usr 
    datadir  = /var/lib/mysql 
    tmpdir  = /tmp 
    lc-messages-dir = /usr/share/mysql 
    skip-external-locking 
    # 
    # Instead of skip-networking the default is now to listen only on 
    # localhost which is more compatible and is not less secure. 
    # bind-address  = 127.0.0.1 


    #max_connections=200 (mysql connections) 
    # 
    # * Fine Tuning 
    # 
    key_buffer  = 16M 
    max_allowed_packet = 16M 
    thread_stack  = 192K 
    thread_cache_size  = 8 
    # This replaces the startup script and checks MyISAM tables if needed 
    # the first time they are touched 
    myisam-recover   = BACKUP 
    #max_connections  = 100 
    #table_cache   = 64 
    #thread_concurrency  = 10 
    # 
    # * Query Cache Configuration 
    # 

    innodb_buffer_pool_size = 8G 
    innodb_flush_log_at_trx_commit = 2 
    query_cache_size=268435456 
    query_cache_type=1 
    query_cache_limit=8388608 
    group_concat_max_len=100000 

    #query_cache_limit = 1M 
    #query_cache_size  = 16M 

    # 
    # * Logging and Replication 
    # 
    # Both location gets rotated by the cronjob. 
    # Be aware that this log type is a performance killer. 
    # As of 5.1 you can enable the log at runtime! 
    #general_log_file  = /var/log/mysql/mysql.log 
    #general_log    = 1 
    # 
    # Error log - should be very few entries. 
    # 
    log_error = /var/log/mysql/error.log 
    # 
    # Here you can see queries with especially long duration 
    #log_slow_queries = /var/log/mysql/mysql-slow.log 
    #long_query_time = 2 
    #log-queries-not-using-indexes 
    # 
    # The following can be used as easy to replay backup logs or for replication. 
    # note: if you are setting up a replication slave, see README.Debian about 
    #  other settings you may need to change. 
    #server-id  = 1 
    #log_bin   = /var/log/mysql/mysql-bin.log 
    expire_logs_days = 10 
    max_binlog_size   = 100M 
    #binlog_do_db  = include_database_name 
    #binlog_ignore_db = include_database_name 
    # 
    # * InnoDB 
    # 
    # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. 
    # Read the manual for more InnoDB related options. There are many! 
    # 
    # * Security Features 
    # 
    # Read the manual, too, if you want chroot! 
    # chroot = /var/lib/mysql/ 
    # 
    # For generating SSL certificates I recommend the OpenSSL GUI "tinyca". 
    # 
    # ssl-ca=/etc/mysql/cacert.pem 
    # ssl-cert=/etc/mysql/server-cert.pem 
    # ssl-key=/etc/mysql/server-key.pem 



    [mysqldump] 
    quick 
    quote-names 
    max_allowed_packet = 16M 

    [mysql] 
    #no-auto-rehash # faster start of mysql but no tab completition 

    [isamchk] 
    key_buffer  = 16M 

    # 
    # * IMPORTANT: Additional settings that can override those from this file! 
    # The files must end with '.cnf', otherwise they'll be ignored. 
    # 
    !includedir /etc/mysql/conf.d/ 

mysql的文件mysql的重新启动后:

 

    mysql> show variables like '%group_concat_max%'; 
    +----------------------+-------+ 
    | Variable_name  | Value | 
    +----------------------+-------+ 
    | group_concat_max_len | 1024 | 
    +----------------------+-------+ 
    1 row in set (0.00 sec) 

+0

您可能在my.cnf中输入了错误。你可以检查mysql日志,看看是否有任何关于它?请在这里粘贴my.cnf。你的my.cnf究竟在哪里? – abeyaz

+0

@abeyaz它在/ etc/mysql /文件夹中。 –

+0

如果你确定即使在my.cnf文件中有100000,它仍然会回到默认值,但是mysql可能不会在那个目录中看到你的my.cnf文件。你可以检查'/ etc/init.d/mysql'如果你使用的是debian/ubuntu的发行版,那么my.cnf的位置在那里 – abeyaz

从单线您配置文件NEEDS被列为6行,因为初始化只能处理每行一个变量,恕我直言。

您可能会发现,您的查询缓存大小约为268M,query_cache_limit约为8M将分别在50M和1M时更有效。 原因是在表中更改了一行时,更新表的每个缓存查询结果都被标记为无效 - 即单独使用cpu周期标记缓存结果。

重新启动后,请确认SHOW GLOBAL VARIABLES LIKE'group_concat_max_length'具有您的预期价值。它应该是可见的。

+0

粘贴导致初始化的my.cnf文件看起来像是单行,这是一个缩进问题。我现在编辑了我的帖子。谢谢 –

+0

该问题仍未解决 –