mysqldump: Couldn't execute SHOW TRIGGERS LIKE

Written by Peter Davies on .

Just had the following error on an old Gentoo MySQL server. On attempting to extract all database content I got a:

mysqldump: Couldn't execute 'SHOW TRIGGERS LIKE 'tt\_ticket\_dat'':
Got error 28 from storage engine (1030)

I followed a similar issue (found here) which describes that the open files limit needs modification:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 279
Server version: 5.0.70 Gentoo Linux mysql-5.0.70-r1

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SHOW VARIABLES LIKE 'Open_files_limit';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| open_files_limit | 2500  |
+------------------+-------+
1 row in set (0.00 sec)

mysql> exit
Bye

This then needs the open files limit changing by altering the O/S limit using: ulimit -n 10000. The result in MySQL should then reflect this change:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 279
Server version: 5.0.70 Gentoo Linux mysql-5.0.70-r1

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SHOW VARIABLES LIKE 'Open_files_limit';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| open_files_limit | 10000 |
+------------------+-------+
1 row in set (0.00 sec)

mysql> exit
Bye

Then you can re-run (including the skip locking parameter):

mysqldump --all-databases --skip-lock-table -p > alldata.sql

The result should be a SQL file containing the data you need. Worst case, if there are multiple tables in the dump, simply extract them individually so that the mysqldump tool has less work to do.