The mysqldump
command in MySQL is used to create backups of databases. One of the options available is --no-defaults
, which excludes default option files when generating the dump output. This option is useful when you want to ensure that only explicitly specified options are used during the dump process, ignoring any defaults that might be set in configuration files.
Here are several examples demonstrating the use of --no-defaults
:
Example 1: Exclude default option files when dumping a single database.
mysqldump --no-defaults -u root -p mydatabase > mydatabase_backup.sql
This command dumps the mydatabase
database without considering any default options, storing the output in mydatabase_backup.sql
.
Example 2: Dump multiple databases, ignoring default options.
mysqldump --no-defaults -u root -p --databases db1 db2 db3 > multiple_databases_backup.sql
This command dumps databases db1
, db2
, and db3
into multiple_databases_backup.sql
without using default options.
Example 3: Dump all databases except the default ones, without default options.
mysqldump --no-defaults -u root -p --all-databases --ignore-table=mysql.events > alldatabases_backup.sql
Here, all databases are dumped except the default ones, and the dump excludes default options. Output is stored in alldatabases_backup.sql
.
Example 4: Dump a specific table from a database without default options.
mysqldump --no-defaults -u root -p mydatabase mytable > mytable_backup.sql
This command dumps mytable
from mydatabase
while excluding default options, saving the dump to mytable_backup.sql
.
Example 5: Exclude default options and compress the dump output.
mysqldump --no-defaults -u root -p mydatabase | gzip > mydatabase_backup.sql.gz
Here, the dump of mydatabase
is compressed after excluding default options, creating mydatabase_backup.sql.gz
.
Example 6: Dump with --no-defaults
and specify a custom socket for connection.
mysqldump --no-defaults -u root -p --socket=/custom/socket mydatabase > mydatabase_backup.sql
This command connects to MySQL using a custom socket and excludes default options when dumping mydatabase
.
Example 7: Dump with --no-defaults
and specify a different MySQL server host.
mysqldump --no-defaults -u root -p --host=otherhost mydatabase > mydatabase_backup.sql
Connects to a MySQL server at otherhost
, ignoring default options while dumping mydatabase
.
Example 8: Dump with --no-defaults
and include table structure only.
mysqldump --no-defaults -u root -p --no-data mydatabase > mydatabase_structure.sql
This command dumps only the structure of mydatabase
without data, excluding default options, to mydatabase_structure.sql
.
Example 9: Dump with --no-defaults
and specify a custom character set.
mysqldump --no-defaults -u root -p --default-character-set=utf8 mydatabase > mydatabase_utf8_backup.sql
Creates a dump of mydatabase
using UTF-8 character set, ignoring default options, saved in mydatabase_utf8_backup.sql
.
Example 10: Dump with --no-defaults
and use extended-inserts.
mysqldump --no-defaults -u root -p --extended-insert mydatabase > mydatabase_extended.sql
This command enables extended inserts while dumping mydatabase
, excluding default options, to mydatabase_extended.sql
.
To verify if the --no-defaults
option was applied successfully, check the beginning of the generated SQL dump file. If the dump does not include default options (like configurations from my.cnf
or other default files), then the command executed correctly.
Discussion about this post