mysqlhotcopy is a Perl script that was originally written and contributed by Tim Bunce. It uses LOCK TABLES, FLUSH TABLES, and cp or scp to quickly make a backup of a database. It's the fastest way to make a backup of the database or single tables, but it can be run only on the same machine where the database directories are located. mysqlhotcopy works only for backing up MyISAM and ISAM tables. It runs on Unix, and as of MySQL 4.0.18 also on NetWare.
shell> mysqlhotcopy db_name [/path/to/new_directory]
shell> mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory
shell> mysqlhotcopy db_name./regex/
mysqlhotcopy supports the following options:
Display a help message and exit.
Don't abort if target already exists (rename it by adding an _old suffix).
Insert checkpoint entries into the specified db_name.tbl_name.
Enable debug output.
Report actions without doing them.
Flush logs after all tables are locked.
Don't delete previous (now renamed) target when done.
Method for copy (cp or scp).
Don't include full index files in the backup. This makes the backup smaller and faster. The indexes can be reconstructed later with myisamchk -rq for MyISAM tables or isamchk -rq for ISAM tables.
The password to use when connecting to the server. Note that the password value is not optional for this option, unlike for other MySQL programs.
The TCP/IP port number to use when connecting to the local server.
Be silent except for errors.
Copy all databases with names matching the given regular expression.
The Unix socket file to use for the connection.
The suffix for names of copied databases.
The temporary directory (instead of /tmp).
The MySQL username to use when connecting to the server.
mysqlhotcopy reads the [client] and [mysqlhotcopy] option groups from option files.
To execute mysqlhotcopy, you must have access to the files for the tables that you are backing up, the SELECT privilege for those tables, and the RELOAD privilege (to be able to execute FLUSH TABLES).
Use perldoc for additional mysqlhotcopy documentation:
shell> perldoc mysqlhotcopy