2017-07-19 24 views
0

現在、ローカルシステムにMySQLバージョン5.6がインストールされています。システム変数group_concat_max_lengthを一定の値に永久に設定したい。 mysql端末で set global group_concat_max_len = 100000; コマンドを使用すると、値が設定されますが、再起動時に値がデフォルトに変更されます。 my.cnfファイルも変更して、[mysqld]ヘッダーに入れました。group_concat_max_length my.cnfファイルを変更してもシステム変数が変更されない

誰も問題を示唆することはできますか?

編集: my.cnfの

 

    # 
    # 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/ 

/etc/init.d/の中のmysqlファイルのmysqlの再起動後

 

    ... 
    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" 
    ... 

 

    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/folderにあります。 –

+0

my.cnfファイルに100000が入っていても、デフォルト値に戻ってしまった場合は、おそらくmysqlはmy.cnfファイルをそのディレクトリに表示しません。 debian/ubuntuベースのディストリビューションを使用している場合は '/ etc/init.d/mysql'を確認できますか?そこにmy.cnfの場所があります – abeyaz

答えて

0

あなたからの単一行構成ファイルNEEDSを6行にするには、初期化では1行につき1つの変数しか扱えないため、私見では。

クエリキャッシュのサイズは約268M、query_cache_limitは約8Mの方がそれぞれ50Mと1Mで効率的です。 テーブル内で1つの行が変更される理由は、更新されたテーブルのキャッシュされたクエリ結果はすべて無効とマークされます。つまり、キャッシュ結果を個別にマークするためにCPUサイクルが消費されます。

SHOW GLOBAL VARIABLES LIKE 'group_concat_max_length'がご使用の値になっていることを確認してください。それは見えるはずです。

+0

my.cnfファイルを貼り付ける際に、インデントの問題がありました。私は今私の投稿を編集しました。 –

+0

ありがとうございます。まだ問題は解決していません –

関連する問題