diff --git a/bin/pt-mysql-summary b/bin/pt-mysql-summary index 5d55d1b5..1439ea16 100755 --- a/bin/pt-mysql-summary +++ b/bin/pt-mysql-summary @@ -921,6 +921,10 @@ collect_mysql_innodb_status () { $CMD_MYSQL $EXT_ARGV -ssE -e 'SHOW /*!50000 ENGINE*/ INNODB STATUS' 2>/dev/null } +collect_mysql_ndb_status () { + $CMD_MYSQL $EXT_ARGV -ssE -e 'show /*!50000 ENGINE*/ NDB STATUS' 2>/dev/null +} + collect_mysql_processlist () { $CMD_MYSQL $EXT_ARGV -ssE -e 'SHOW FULL PROCESSLIST' 2>/dev/null } @@ -930,6 +934,7 @@ collect_mysql_users () { if [ "$?" -ne 0 ]; then $CMD_MYSQL $EXT_ARGV -ss -e 'SELECT COUNT(*), SUM(user=""), SUM(authentication_string=""), SUM(authentication_string NOT LIKE "*%") FROM mysql.user' 2>/dev/null fi + } collect_mysql_show_slave_hosts () { @@ -1029,6 +1034,7 @@ collect_mysql_info () { collect_mysql_plugins > "$dir/mysql-plugins" collect_mysql_slave_status > "$dir/mysql-slave" collect_mysql_innodb_status > "$dir/innodb-status" + collect_mysql_ndb_status > "$dir/ndb-status" collect_mysql_processlist > "$dir/mysql-processlist" collect_mysql_users > "$dir/mysql-users" diff --git a/lib/bash/collect_mysql_info.sh b/lib/bash/collect_mysql_info.sh index c1df757d..39d5275c 100644 --- a/lib/bash/collect_mysql_info.sh +++ b/lib/bash/collect_mysql_info.sh @@ -118,6 +118,10 @@ collect_mysql_processlist () { collect_mysql_users () { $CMD_MYSQL $EXT_ARGV -ss -e 'SELECT COUNT(*), SUM(user=""), SUM(password=""), SUM(password NOT LIKE "*%") FROM mysql.user' 2>/dev/null + if [ "$?" -ne 0 ]; then + $CMD_MYSQL $EXT_ARGV -ss -e 'SELECT COUNT(*), SUM(user=""), SUM(authentication_string=""), SUM(authentication_string NOT LIKE "*%") FROM mysql.user' 2>/dev/null + fi + } collect_mysql_show_slave_hosts () { diff --git a/t/pt-mysql-summary/pt-mysql-summary.t b/t/pt-mysql-summary/pt-mysql-summary.t index 3ea61c8a..9d7b7177 100644 --- a/t/pt-mysql-summary/pt-mysql-summary.t +++ b/t/pt-mysql-summary/pt-mysql-summary.t @@ -42,7 +42,7 @@ ok( my @files = glob("$dir/*"); my $n_files = scalar @files; ok( - $n_files >= 15 && $n_files <= 16, + $n_files >= 15 && $n_files <= 17, "And leaves all files in there" ) or diag($n_files, `ls -l $dir`);