major / MySQLTuner-perl

MySQLTuner is a script written in Perl that will assist you with your MySQL configuration and make recommendations for increased performance and stability.
GNU General Public License v3.0
8.86k stars 1.28k forks source link

Error with MySQL version 5.5.8-log #2

Closed sastro closed 13 years ago

sastro commented 13 years ago

Here is the error

[root@381723 ~]# /home/mysqltuner.pl

MySQLTuner 1.1.1 - Major Hayden major@mhtx.net Bug reports, feature requests, and downloads at http://mysqltuner.com/ Run with '--help' for additional options and output filtering Please enter your MySQL administrative login: root Please enter your MySQL administrative password:

-------- General Statistics -------------------------------------------------- [--] Skipped version check for MySQLTuner script [OK] Currently running supported MySQL version 5.5.8-log [OK] Operating on 64-bit architecture

-------- Storage Engine Statistics ------------------------------------------- [--] Status: -Archive -BDB -Federated +InnoDB -ISAM -NDBCluster [--] Data in MyISAM tables: 304M (Tables: 63) [--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17) [!!] InnoDB is enabled but isn't being used [!!] Total fragmented tables: 2

-------- Security Recommendations ------------------------------------------- [OK] All database users have passwords assigned Use of uninitialized value in multiplication (*) at /home/mysqltuner.pl line 666, <> line 2 (#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 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 in division (/) at /home/mysqltuner.pl line 666, <> line 2 (#1)

Illegal division by zero at /home/mysqltuner.pl line 666, <> line 2 (#2) (F) You tried to divide a number by 0. Either something was wrong in your logic, or you need to put a conditional in to guard against meaningless input.

Uncaught exception from user code: Illegal division by zero at /home/mysqltuner.pl line 666, <> line 2. at /home/mysqltuner.pl line 665 main::calculations() called at /home/mysqltuner.pl line 918

Please help

jnrbsn commented 13 years ago

Just based on the error messages, it looks like this is caused by the variables $myvar{'innodb_log_file_size'} and $myvar{'innodb_buffer_pool_size'} being undefined. Try running SHOW VARIABLES LIKE '%innodb%'; to see if those variables have been renamed or something in MySQL 5.5. I don't think they have, but I haven't used that version yet so I don't know.

thelounge-zz commented 13 years ago

i think this has nothing to do with innodb-variables the problem is that this only happens on servers with "skip-innodb" "skip-innodb" is the only line related to innodb in my.cnf and if i remove this the error goes away, but no i do not like innodb on this machine :-(

-------- Storage Engine Statistics ------------------------------------------- [--] Status: -Archive -BDB -Federated +InnoDB -ISAM -NDBCluster [--] Data in MyISAM tables: 543M (Tables: 3533) [--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17) [!!] InnoDB is enabled but isn't being used [!!] Total fragmented tables: 187

-------- Security Recommendations ------------------------------------------- [OK] All database users have passwords assigned Use of uninitialized value $myvar{"innodb_log_file_size"} in multiplication (*) at /usr/bin/mysqltuner line 666, <> line 2 (#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.

scop commented 13 years ago

This is caused by a MySQL 5.5 bug - have_innodb is set to YES in global variables even if skip-innodb or ignore-builtin-innodb is used.

http://bugs.mysql.com/bug.php?id=59393

scop commented 13 years ago

Fix included in issue #3.