Ad Widget

Collapse

Проблема при апгрейде с 4.0.6 до 4.2

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ChiefPilot
    Junior Member
    • Jul 2012
    • 10

    #1

    Проблема при апгрейде с 4.0.6 до 4.2

    Помогите, пожалуйста, кто может. Произвёл апгрейд с 4.0.6 до 4.2 и получил строчку:

    [Z3005] query failed: [1071] Specified key was too long; max key length is 767 bytes [create unique index lld_macro_path_1 on lld_macro_path (itemid,lld_macro)]

    в логе. База не может проапгрейдится до 4020000. Что тут можно сделать?
  • AbyssMoon
    Member
    • Nov 2012
    • 51

    #2
    Обновить древний mysql до версии поновее или переехать на mariadb

    Comment

    • ChiefPilot
      Junior Member
      • Jul 2012
      • 10

      #3
      Версию система показывает такую (mysql --version): Ver 15.1 Distrib 10.0.38-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 - это нормальная версия? Это всё стоит на регулярно обновляемом Ubuntu Server 16.04. Я на самом деле уже вышел из положения - просто вернулся на 4.0.6 обратно (была копия базы до обновления). Но симптом нехороший.

      Comment

      • MBear
        Junior Member
        • Nov 2004
        • 25

        #4
        Аналогичная проблема.
        Вернулся на предварительно склонированную машину.
        Last edited by MBear; 04-04-2019, 06:20.

        Comment

        • sles
          Member
          • Oct 2005
          • 80

          #5
          у меня centos 7, там 5.5.60-MariaDB

          4.2 не будет работать?

          Comment

          • sles
            Member
            • Oct 2005
            • 80

            #6
            Originally posted by ChiefPilot
            10.0.38-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 - это нормальная версия?
            версия нормальная, но , судя мурзилке https://mariadb.com/kb/en/library/in...b_large_prefix

            должны быть параметры

            [mysqld]
            innodb_large_prefix = 1 innodb_file_format = Barracuda в 10, наверное, сработает, попробуйте, я , правда , про формат файла не прочитал, надо ли базу перезаливать или просто поменять параметр? в моей 5.5 трудно сказать, пока не читал документацию :-)

            Comment

            • sles
              Member
              • Oct 2005
              • 80

              #7
              судя по тому, что тут пишут, надо менять формат таблиц




              1. Включить поддержку barracuda (установить innodb_file_format=barracuda в настройках сервера);
              2. Установить значение формата по умолчанию (SET GLOBAL innodb_file_format=barracuda; в консоли, или просто перезапустить MySQL после выполнения п.1);
              3. Переделать таблички (ALTER TABLE tablename ROW_FORMAT=DYNAMIC).


              Хотелось бы комментариев авторов zabbix насчёт обновления до 4.2 и формата баз mysql, а также о поддерживаемых версиях mysql и mariadb..

              Comment

              • ChiefPilot
                Junior Member
                • Jul 2012
                • 10

                #8
                Хорошо. Спасибо большое! Как нибудь найду время и попробую проделать это перед переходом.

                Comment

                • sles
                  Member
                  • Oct 2005
                  • 80

                  #9
                  я бы, честно говоря, на вашем месте оформил бы баг-репорт, в https://www.zabbix.com/documentation.../debian_ubuntu ничего не написано про такую проблему вообще.
                  буду обновляться и если так и будет- напишу сам ;-)

                  Comment

                  • inkostin
                    Member
                    • Jan 2018
                    • 81

                    #10
                    Аналогично: Current database version (mandatory/optional): 4010005/4010005. Required mandatory version: 4020000.


                    Debian - 9.8
                    root@zabbix:~# mysql -V
                    mysql Ver 15.1 Distrib 10.1.37-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

                    Comment

                    • sles
                      Member
                      • Oct 2005
                      • 80

                      #11
                      Судя по всему разработчики zabbix форум не читают :-)
                      Раз никто не репортит- сейчас сделаю, хоть и не моя проблема.

                      Comment

                      • sles
                        Member
                        • Oct 2005
                        • 80

                        #12

                        нарисовал

                        Comment

                        • vso
                          Zabbix developer
                          • Aug 2016
                          • 190

                          #13
                          Could you please so kind and show output of:
                          show create table hostmacro;
                          show create table lld_macro_path;

                          Comment

                          • inkostin
                            Member
                            • Jan 2018
                            • 81

                            #14
                            Originally posted by vso
                            Could you please so kind and show output of:
                            show create table hostmacro;
                            show create table lld_macro_path;
                            MariaDB [(none)]> use zabbix
                            Reading table information for completion of table and column names
                            You can turn off this feature to get a quicker startup with -A

                            Database changed
                            MariaDB [zabbix]> show create table hostmacro;
                            +-----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
                            | Table | Create Table |
                            +-----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
                            | hostmacro | CREATE TABLE `hostmacro` (
                            `hostmacroid` bigint(20) unsigned NOT NULL,
                            `hostid` bigint(20) unsigned NOT NULL,
                            `macro` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
                            `value` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
                            PRIMARY KEY (`hostmacroid`),
                            UNIQUE KEY `hostmacro_1` (`hostid`,`macro`),
                            CONSTRAINT `c_hostmacro_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE
                            ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin |
                            +-----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
                            1 row in set (0.00 sec)

                            MariaDB [zabbix]> show create table lld_macro_path;
                            ERROR 1146 (42S02): Table 'zabbix.lld_macro_path' doesn't exist


                            Comment

                            • vso
                              Zabbix developer
                              • Aug 2016
                              • 190

                              #15
                              It would be nice to see create table after failed upgrade, if not too much trouble:
                              Code:
                              show create table lld_macro_path;
                              Also please do:
                              Code:
                              SELECT @@character_set_database, @@collation_database;
                              Can also try test table manually and seeing if it succeeds:
                              Code:
                              CREATE TABLE `lld_macro_path` (`lld_macro` varchar(255) DEFAULT '' NOT NULL) ENGINE=InnoDB;
                              
                              CREATE UNIQUE INDEX `lld_macro_path_1` ON `lld_macro_path` (`lld_macro`);
                              
                              drop table lld_macro_path;
                              Last edited by vso; 05-04-2019, 10:18.

                              Comment

                              Working...