Question

I try to create dump as replication master data and use followed command to create dump, but sql file only contains paramters and there is no data and structure. The command is :

mysqldump --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 -A > bckp.sql.gz 

Contents of sql file is:

-- MySQL dump 10.13  Distrib 5.1.41, for debian-linux-gnu (x86_64)
--
-- Host: xxx.xxx.xxx.xxx    Database: XXX
-- ------------------------------------------------------
-- Server version       5.1.72-0ubuntu0.10.04.1-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 */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2013-12-26  8:56:27

Why does this problem occur?

Was it helpful?

Solution 2

I found the problem. The problem is --flush-log option. I don't know why this causes the problem, but mysqldump works correctly after I remove the option.

OTHER TIPS

That would happen if the user credentials mysqldump is trying to use only has the USAGE privilege, which is a privilege that essentially allows you to connect to the server and do nothing else if you haven't been granted any finer-grained privileges.

shell> mysql -e 'SHOW GRANTS;'

If you are not passing a username and password to mysqldump, then the command above will tell you who you're authenticating as, and what privileges that user has... or, if you are passing a username and password to mysqldump, then add those to the above command and check the output. The fix, of course, may be to pass an appropriate username and password as arguments to mysqldump, if you're not already doing that.

The default installation includes an anonymous user with permission to access the 'test' database, and if you haven't removed that user, you might be hitting that account; you will probably want to remove that user if it's there, which you can do manually or with mysql_secure_installation. Presumably you must have already removed the test database, or it would have been included in the dump file if my diagnosis here is accurate.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top