Mysqldump does not export data or structures

I have a short PHP script that should back up MySQL and send it to me via email. However, neither data nor structures are created by mysqldump. The mysqldump call command looks like this:

mysqldump --host=localhost --user=xxx --pass=xxx xxx_license > xxx2012-12-28.sql 

(The username and password xxx are the same as another script that works with php and the database, so I know the credentials are correct).

The output is as follows:

 -- MySQL dump 10.13 Distrib 5.5.28, for Linux (x86_64) -- -- Host: localhost Database: xxx_license -- ------------------------------------------------------ -- Server version 5.5.28-cll /*!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 */; -- -- Current Database: `xxx_license` -- CREATE DATABASE /*!32312 IF NOT EXISTS*/ `xxx_license` /*!40100 DEFAULT CHARACTER SET latin1 */; USE `xxx_license`; 

The CREATE and USE statements are only present if I add --databases to the parameters.

And using --help to display the default options:

 mysqldump Ver 10.13 Distrib 5.5.28, for Linux (x86_64) <snip> Variables (--variable-name=value) and boolean options {FALSE|TRUE} Value (after reading options) --------------------------------- ---------------------------------------- all-databases FALSE all-tablespaces FALSE no-tablespaces FALSE add-drop-database FALSE add-drop-table TRUE add-locks TRUE allow-keywords FALSE apply-slave-statements FALSE character-sets-dir (No default value) comments TRUE compatible (No default value) compact FALSE complete-insert FALSE compress FALSE create-options TRUE databases FALSE debug-check FALSE debug-info FALSE default-character-set utf8 delayed-insert FALSE delete-master-logs FALSE disable-keys TRUE dump-slave 0 events FALSE extended-insert TRUE fields-terminated-by (No default value) fields-enclosed-by (No default value) fields-optionally-enclosed-by (No default value) fields-escaped-by (No default value) flush-logs FALSE flush-privileges FALSE force FALSE hex-blob FALSE host (No default value) include-master-host-port FALSE insert-ignore FALSE lines-terminated-by (No default value) lock-all-tables FALSE lock-tables TRUE log-error (No default value) master-data 0 max-allowed-packet 25165824 net-buffer-length 1046528 no-autocommit FALSE no-create-db FALSE no-create-info FALSE no-data FALSE order-by-primary FALSE port 0 quick TRUE quote-names TRUE replace FALSE routines FALSE set-charset TRUE single-transaction FALSE dump-date TRUE socket (No default value) ssl FALSE ssl-ca (No default value) ssl-capath (No default value) ssl-cert (No default value) ssl-cipher (No default value) ssl-key (No default value) ssl-verify-server-cert FALSE tab (No default value) triggers TRUE tz-utc TRUE user (No default value) verbose FALSE where (No default value) plugin-dir (No default value) default-auth (No default value) 

If something in these options is wrong, how can I change / override it? I cannot find the configuration file, and I do not have SSH access to the web server to perform any actions.

Thanks.

+4
source share
4 answers

Check the user rights and ensure that they have SELECT permissions for all tables. And if it does not have permission to lock tables, use --skip-lock-tables .

+3
source

Try the following:

mysqldump -u [username] -p [database name]> [dump file]

press enter

password

press enter

 mysqldumpuxxxp xxx_license > xxx2012-12-28.sql press enter key 

now enter your password

 xxx press enter key 

It works for me.

0
source

I had the same problem, I solved it by updating my "mysqldump.exe" to the latest version (the server and my backup server were out of sync regarding the MySQL version)

0
source

Can I start a dump from the command line? If you can not start there. If you can, as it works through a PHP script, make sure your script has write permission to the directory in which it saves the dump. Check owner / group rights and permissions to save the directory.

0
source

All Articles