Bug #67261 | mysqldump 5.6.7-rc does not export all tables in `mysql` database | ||
---|---|---|---|
Submitted: | 16 Oct 2012 10:36 | Modified: | 2 Nov 2012 20:01 |
Reporter: | Ashwin A | Email Updates: | |
Status: | Duplicate | Impact on me: | |
Category: | MySQL Server: mysqldump Command-line Client | Severity: | S3 (Non-critical) |
Version: | 5.6.7-rc | OS: | Windows (Windows 8) |
Assigned to: | CPU Architecture: | Any | |
Tags: | mysqldump |
[16 Oct 2012 10:36]
Ashwin A
[19 Oct 2012 12:26]
Erlend Dahl
We have tried to reproduce this internally - this is what the responsible engineer indicates: Can't repeat the above mentioned scenario. Dumping 'mysql' database using mysqldump, dumps all the mysql tables. ./bin/mysqldump -uroot -S /tmp/mysqld.1.sock mysql Verified against the following packages : mysql-5.6.7-rc-winx64.zip mysql-5.6.7-rc-linux2.6-x86_64.tar.gz mysql-5.6.8-rc-linux2.6-x86_64.tar.gz Perhaps the filer can give us some more info like : 1) The exact command used, instead of the command mentioned above with a possible typo : mysql -hlocalhost -uroot -ppwd -P3306 (3307 for 5.5.28) mysql > filename.sql ^^ It should be mysqldump instead. 2) What tables were present in mysql database at the time of dump : mysql -uroot -e "show tables in mysql"
[19 Oct 2012 13:06]
Peter Laursen
Reproducible for me on Win7: C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqldump mysql -uroot -p --no-data Enter password: -- MySQL dump 10.13 Distrib 5.6.7-rc, for Win64 (x86_64) -- -- Host: localhost Database: mysql -- ------------------------------------------------------ -- Server version 5.6.7-rc /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Table structure for table `general_log` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE IF NOT EXISTS `general_log` ( `event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TI MESTAMP, `user_host` mediumtext NOT NULL, `thread_id` int(11) NOT NULL, `server_id` int(10) unsigned NOT NULL, `command_type` varchar(64) NOT NULL, `argument` mediumtext NOT NULL ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Table structure for table `slow_log` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE IF NOT EXISTS `slow_log` ( `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TI MESTAMP, `user_host` mediumtext NOT NULL, `query_time` time NOT NULL, `lock_time` time NOT NULL, `rows_sent` int(11) NOT NULL, `rows_examined` int(11) NOT NULL, `db` varchar(512) NOT NULL, `last_insert_id` int(11) NOT NULL, `insert_id` int(11) NOT NULL, `server_id` int(10) unsigned NOT NULL, `sql_text` mediumtext NOT NULL, `thread_id` int(11) NOT NULL ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'; /*!40101 SET character_set_client = @saved_cs_client */; mysqldump: Got error: 1146: Table 'mysql.innodb_index_stats' doesn't exist when using LOCK TABLES C:\Program Files\MySQL\MySQL Server 5.6\bin> (the server is a fresh install of 5.6.7) Now this error "mysqldump: Got error: 1146: Table 'mysql.innodb_index_stats' doesn't exist when using LOCK TABLES". Shall I understand that mysqldump aborts after this error? Also see my blog: http://blog.webyog.com/2012/10/11/bummer/
[19 Oct 2012 13:14]
Ashwin A
I tried again and it is still reproducible to me! 1) And, yes it was a typo. Here is the exact command(I am copy/pasting from the cmd): C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqldump -hlocalhost -uroot -ppwd -P3306 mysql>"C:\filename.sql" mysqldump: Got error: 1146: Table 'mysql.innodb_index_stats' doesn't exist when using LOCK TABLES -- MySQL dump 10.13 Distrib 5.6.7-rc, for Win64 (x86_64) -- -- Host: localhost Database: mysql -- ------------------------------------------------------ -- Server version 5.6.7-rc-log /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Table structure for table `general_log` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE IF NOT EXISTS `general_log` ( `event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `user_host` mediumtext NOT NULL, `thread_id` int(11) NOT NULL, `server_id` int(10) unsigned NOT NULL, `command_type` varchar(64) NOT NULL, `argument` mediumtext NOT NULL ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Table structure for table `slow_log` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE IF NOT EXISTS `slow_log` ( `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `user_host` mediumtext NOT NULL, `query_time` time NOT NULL, `lock_time` time NOT NULL, `rows_sent` int(11) NOT NULL, `rows_examined` int(11) NOT NULL, `db` varchar(512) NOT NULL, `last_insert_id` int(11) NOT NULL, `insert_id` int(11) NOT NULL, `server_id` int(10) unsigned NOT NULL, `sql_text` mediumtext NOT NULL, `thread_id` int(11) NOT NULL ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'; /*!40101 SET character_set_client = @saved_cs_client */; 2) "What tables were present in mysql database at the time of dump : mysql -uroot -e "show tables in mysql" " C:\Program Files\MySQL\MySQL Server 5.6\bin>mysql -hlocalhost -uroot -ppwd -P3306 -e "show tables in mysql" +---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | event | | func | | general_log | | help_category | | help_keyword | | help_relation | | help_topic | | innodb_index_stats | | innodb_table_stats | | ndb_binlog_index | | plugin | | proc | | procs_priv | | proxies_priv | | servers | | slave_master_info | | slave_relay_log_info | | slave_worker_info | | slow_log | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+
[19 Oct 2012 13:23]
Peter Laursen
Actually I forgot to specify the port. But it still connected to MySQL 5.6.7 listening on port 3308? Hmmm ... anyway with a proper -P3308: C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqldump mysql -uroot -p -P3308 --n o-data Enter password: -- MySQL dump 10.13 Distrib 5.6.7-rc, for Win64 (x86_64) -- -- Host: localhost Database: mysql -- ------------------------------------------------------ -- Server version 5.6.7-rc /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Table structure for table `general_log` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE IF NOT EXISTS `general_log` ( `event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TI MESTAMP, `user_host` mediumtext NOT NULL, `thread_id` int(11) NOT NULL, `server_id` int(10) unsigned NOT NULL, `command_type` varchar(64) NOT NULL, `argument` mediumtext NOT NULL ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Table structure for table `slow_log` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE IF NOT EXISTS `slow_log` ( `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TI MESTAMP, `user_host` mediumtext NOT NULL, `query_time` time NOT NULL, `lock_time` time NOT NULL, `rows_sent` int(11) NOT NULL, `rows_examined` int(11) NOT NULL, `db` varchar(512) NOT NULL, `last_insert_id` int(11) NOT NULL, `insert_id` int(11) NOT NULL, `server_id` int(10) unsigned NOT NULL, `sql_text` mediumtext NOT NULL, `thread_id` int(11) NOT NULL ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'; /*!40101 SET character_set_client = @saved_cs_client */; mysqldump: Got error: 1146: Table 'mysql.innodb_index_stats' doesn't exist when using LOCK TABLES C:\Program Files\MySQL\MySQL Server 5.6\bin>
[19 Oct 2012 13:27]
Peter Laursen
My config file attached if it matters.
Attachment: my.ini (application/octet-stream, text), 8.71 KiB.
[19 Oct 2012 13:29]
Peter Laursen
(and as I have a port setting in the client section of config it is explained why it took port 3308 with no -P specification)
[22 Oct 2012 9:33]
Vasil Dimov
Hello, Yes, mysqldump terminates when it encounters this error: mysqldump: Got error: 1146: Table 'mysql.innodb_index_stats' doesn't exist when using LOCK TABLES the failure is also indicated by the exit status (could check it with "echo $?" on Unix-like OS). So in other words - the created dump is incomplete because of that error and this explains why you do not see the rest of the tables in the dump. The reason for the error itself it yet to be determined.
[22 Oct 2012 13:14]
Peter Laursen
This is undoubtedly the underlying reason: http://bugs.mysql.com/bug.php?id=67179
[2 Nov 2012 20:01]
Sveta Smirnova
Yes, this is indeed duplicate of bug #67179, so closing it as such. Please subscribe to this report. Since we can not repeat bug #67179, Ashwin,, please try to help us to find out how is it possible to have such an installation from the clean install.
[5 Feb 2013 18:48]
Paul DuBois
Noted in 5.6.10 changelog. mysqldump could fail to dump all tables in the mysql database.