7.9 The mysqlhotcopy Database Backup Program
mysqlhotcopy is a Perl script that 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 on NetWare as of MySQL 4.0.18.
mysqlhotcopy supports the following options:--help , -?Display a help message and exit.--allowoldDon't abort if target already exists (rename it by adding an _old suffix).--checkpoint=db_name.tbl_nameInsert checkpoint entries into the specified db_name.tbl_name.--debugEnable debug output.--dryrun , -nReport actions without doing them.--flushlogFlush logs after all tables are locked.--keepoldDon't delete previous (now renamed) target when done.--method=#Method for copy (cp or scp).--noindicesDon't include full index files in the backup. This makes the backup smaller and faster. The indexes can be reconstructed later with myisamchk -rq or isamchk -rq.--password=password , -ppasswordThe password to use when connecting to the server. Note that the password value is not optional for this option, unlike for other MySQL clients.--port=port_num , -P port_numThe TCP/IP port number to use when connecting to the local server.--quiet , -qBe silent except for errors.--regexp=exprCopy all databases with names matching the given regular expression.--socket=path , -S pathThe Unix socket file to use for the connection.--suffix=strThe suffix for names of copied databases.--tmpdir=pathThe temporary directory (instead of /tmp).--user=user_name , -u user_nameThe MySQL username to use when connecting to the server.
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 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