Не могу изменить настройки mariadb 10.5

Тема в разделе "Базы данных", создана пользователем verfaa, 31 дек 2020.

Метки:
Модераторы: latteo
  1. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    412
    Симпатии:
    48
    На сервере с centos 7.9 была древняя mariadb 5.5.68
    Вчера удалил её и установил новую mariadb 10.5.8
    Вижу, что обычного файла с настройками my.cnf уже нет, а вместо него, насколько я понял настройки хранятся в папке /etc/my.cnf.d Открываю файл server.cnf и пытаюсь редактировать его:


    Код:
        #
        # These groups are read by MariaDB server.
        # Use it for options that only the server (but not clients) should see
        #
        # See the examples of server my.cnf files in /usr/share/mysql/
        #
       
        # this is read by the standalone daemon and embedded servers
        [server]
       
       
        # this is only for the mysqld standalone daemon
        [mysqld]
       
        max_connections=3985
       
        #
        # * Galera-related settings
        #
        [galera]
        # Mandatory settings
        #wsrep_on=ON
        #wsrep_provider=
        #wsrep_cluster_address=
        #binlog_format=row
        #default_storage_engine=InnoDB
        #innodb_autoinc_lock_mode=2
        #
        # Allow server to accept connections on all interfaces.
        #
        #bind-address=0.0.0.0
        #
        # Optional setting
        #wsrep_slave_threads=1
        #innodb_flush_log_at_trx_commit=0
       
        # this is only for embedded server
        [embedded]
       
        # This group is only read by MariaDB servers, not by MySQL.
        # If you use the same .cnf file for MySQL and MariaDB,
        # you can put MariaDB-only options here
        [mariadb]
       
        # This group is only read by MariaDB-10.5 servers.
        # If you use the same .cnf file for MariaDB of different versions,
        # use this group for options that older servers don't understand
        [mariadb-10.5]
    

    Я указал max_connections=3985 после чего пробовал перезагружать mariadb.service и даже делал reboot сервера. Ничего не помогает - после перезагрузки я вбиваю запрос

    Код:
        SHOW VARIABLES LIKE "max_connections"
    но неизменно получаю:

    Код:
        Variable_name     Value
        max_connections   151
    
    Я пробовал указывать max_connections=3985 в разных секциях [mariadb] [mariadb-10.5] [server] и т.д.
    Но max_connections всё равно остаётся 151.
    Может я вообще не там пытаюсь указывать настройки? Или что-то делаю не так? Подскажите.
     
  2. Stesh

    Stesh

    Регистр.:
    3 фев 2009
    Сообщения:
    304
    Симпатии:
    121
    Вообще должен быть. Создай /etc/my.cnf либо со своим содержимым, либо (если хочешь чтобы читались /etc/my.cnf.d/*.cnf) примерно с таким
    Код:
    #
    # include *.cnf from the config directory
    #
    !includedir /etc/my.cnf.d
    
    См https://mariadb.com/kb/en/configuring-mariadb-with-option-files/#including-option-file-directories
     
  3. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    412
    Симпатии:
    48
    Создал /etc/my.cnf и всё заработало, но сегодня столкнулся с ещё одной проблемой:
    Не могу установить innodb_buffer_pool_instances
    Вот конфиг my.cnf:

    Код:
    max_connections = 1536
    key_buffer_size = 256M
    read_buffer_size = 16M
    join_buffer_size = 16M
    
    # query_cache_size = 128M
    # query_cache_limit = 2M
    query_cache_size = 0
    query_cache_type = 0
    query_cache_limit = 1M
    
    tmp_table_size = 512M
    max_heap_table_size = 512M
    
    innodb_buffer_pool_size = 22G
    innodb_log_file_size = 512M
    
    innodb_flush_log_at_trx_commit = 0
    
    thread_cache_size = 512
    
    table_definition_cache         = 1400     # As big as many tables you have
    table_open_cache_instances     = 4
    
    table_open_cache = 207000
    open_files_limit = 207000
    
    
    После перезагрузки все значения конфига устанавливаются корректно, кроме
    Код:
    table_open_cache_instances     = 4
    Как я только не мучался с этой настройкой - устанавливал её вначале и конце конфига,
    перезагружал как СУБД systemctl restart mariadb.service так и сервер целиком reboot. Ничего не помогает, после перезагрузки захожу в phpmyadmin, вбиваю запрос

    Код:
        SHOW VARIABLES LIKE 'table_open_cache_instances'
    и неизменно получаю
    Код:
        Variable_name                 Value
        table_open_cache_instances  1
    
    Долго гуглил, но так и не нашёл в чём может быть проблема. Она должна меняться, но не меняется. Может она зависит от какой-нибудь другой переменной и должна устанавливаться вместе с ней?
     
    Последнее редактирование: 9 янв 2021
  4. AleksKu

    AleksKu Писатель

    Регистр.:
    21 май 2015
    Сообщения:
    6
    Симпатии:
    4
    Включаем логирование в my.cnf, если нет:
    • log=/var/log/mysql.log
    Пробуем наживую (без необходимости останавливать\перезагружать БД) поменять значение (в терминале) :
    $mysql -u root -p
    $set global table_open_cache_instances=4;

    Проверяем значение table_open_cache_instances, или уходим чтение логов.