четверг, 11 декабря 2014 г.

CentOS 6 + mysqltuner: Use of uninitialized value in addition (+) at /usr/bin/mysqltuner line 547 and Use of uninitialized value $myvar{"have_innodb"} in string eq at

При попытке использовать mysqltuner может быть ошибка



Use of uninitialized value in addition (+) at /usr/bin/mysqltuner line 547 (#1)
    (W uninitialized) An undefined value was used as if it were already
    defined.  It was interpreted as a "" or a 0, but maybe it was a mistake.
    To suppress this warning assign a defined value to your variables.
 
    To help you figure out what was undefined, perl will try to tell you the
    name of the variable (if any) that was undefined. In some cases it cannot
    do this, so it also tells you what operation you used the undefined value
    in.  Note, however, that perl optimizes your program and the operation
    displayed in the warning may not necessarily appear literally in your
    program.  For example, "that $foo" is usually optimized into "that "
    . $foo, and the warning will refer to the concatenation (.) operator,
    even though there is no . in your program.
 
Use of uninitialized value $myvar{"have_innodb"} in string eq at
/usr/bin/mysqltuner line 665 (#1)

Для начала, надо скачать последнюю версию
wget "https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl"
и запускать эту версию. Обычно проблема исчезает. Вот такая она, хвалёная "стабильность" устаревших пакетов в официальных репах.
К слову, встечаю такое далеко не первый раз, например когда-то давно лежал нерабочий ejabberd, пол года точно, и никому не было дела.

Если проблема не решилась - проверяем все my.cnf на ошибки.

Сразу выкачать "поверх" установленного:
wget mysqltuner -O /usr/bin/mysqltuner "https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl"

Комментариев нет:

Отправить комментарий