此实用程序在 MySQL 5.6.20 中已弃用,并在 MySQL 5.7 中删除
mysqlhotcopy是最初由 Tim Bunce 编写和贡献的 Perl 脚本。它使用
FLUSH TABLES、
LOCK TABLES和
cp或scp来进行数据库备份。这是备份数据库或单个表的快速方法,但它只能在数据库目录所在的同一台机器上运行。
mysqlhotcopy仅适用于备份
MyISAM和ARCHIVE表。它在 Unix 上运行。
要使用mysqlhotcopy,您必须具有对要备份的表的文件的读取访问
SELECT权限、这些表的权限、RELOAD权限(能够执行FLUSH TABLES)和LOCK TABLES权限(能够锁定表)。
mysqlhotcopy db_name [/path/to/new_directory]mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory备份给定数据库中与正则表达式匹配的表:
mysqlhotcopy db_name./regex/
表名的正则表达式可以通过在其前面加上波浪号 ( ~) 来取反:
mysqlhotcopy db_name./~regex/
mysqlhotcopy支持以下选项,可以在命令行或
选项文件的组中指定[mysqlhotcopy]。
[client]有关 MySQL 程序使用的选项文件的信息,请参阅
第 4.2.2.2 节,“使用选项文件”。
表 4.22 mysqlhotcopy 选项
| 选项名称 | 描述 |
|---|---|
| --addtodest | 不要重命名目标目录(如果存在);只需向其中添加文件 |
| --allowold | 如果目标存在,不要中止;通过添加 _old 后缀重命名它 |
| --检查点 | 插入检查点条目 |
| --chroot | mysqld 在其中运行的 chroot jail 的基本目录 |
| --调试 | 写调试日志 |
| --试运行 | 报告操作而不执行它们 |
| --flushlog | 锁定所有表后刷新日志 |
| - 帮助 | 显示帮助信息并退出 |
| - 主持人 | MySQL 服务器所在的主机 |
| --keepold | 完成后不要删除以前的(重命名的)目标 |
| - 方法 | 复制文件的方法 |
| --noindices | 不要在备份中包含完整的索引文件 |
| --old_server | 连接到不支持 FLUSH TABLES tbl_list WITH READ LOCK 的服务器 |
| - 密码 | 连接到服务器时使用的密码 |
| - 港口 | 用于连接的 TCP/IP 端口号 |
| - 安静的 | 除错误外保持沉默 |
| --正则表达式 | 复制名称与给定正则表达式匹配的所有数据库 |
| --resetmaster | 锁定所有表后重置二进制日志 |
| --resetslave | 锁定所有表后重置 master.info 文件 |
| - 插座 | 要使用的 Unix 套接字文件或 Windows 命名管道 |
| --tmpdir | 临时目录 |
| - 用户 | 连接到服务器时使用的 MySQL 用户名 |
--help,-?显示帮助信息并退出。
不要重命名目标目录(如果存在);只需向其中添加文件。
如果目标存在,不要中止;通过添加
_old后缀重命名它。将检查点条目插入到指定的数据库
db_name和表中tbl_name。mysqld在其中运行的chroot jail 的 基本目录。该 值应与提供给mysqld的选项相匹配。
dir_name--chroot启用调试输出。
仅当 MySQL 是使用
WITH_DEBUG. Oracle 提供的 MySQL 发布二进制文件不是 使用此选项构建的。--dryrun,-n报告操作而不执行它们。
锁定所有表后刷新日志。
--host=,host_name-hhost_name用于与本地服务器建立 TCP/IP 连接的本地主机的主机名。默认情况下,
localhost使用 Unix 套接字文件建立连接。完成后不要删除以前的(重命名的)目标。
复制文件的方法(
cp或scp)。默认值为cp。不要
MyISAM在备份中包含表的完整索引文件。这使得备份更小更快。稍后可以使用myisamchk -rq重建重新加载表的索引 。--password=,password-ppassword连接到服务器时使用的密码。与其他 MySQL 程序不同,此选项的密码值不是可选的。
在命令行上指定密码应该被认为是不安全的。为避免在命令行中提供密码,请使用选项文件。请参阅 第 6.1.2.1 节,“密码安全的最终用户指南”。
--port=,port_num-Pport_numThe TCP/IP port number to use when connecting to the local server.
In MySQL 5.6, mysqlhotcopy uses
FLUSH TABLESto flush and lock tables. Use thetbl_listWITH READ LOCK--old_serveroption if the server is older than 5.5.3, which is when that statement was introduced.--quiet,-qBe silent except for errors.
--record_log_pos=db_name.tbl_nameRecord source and replica status in the specified database
db_nameand tabletbl_name.Copy all databases with names that match the given regular expression.
Reset the binary log after locking all the tables.
锁定所有表后重置源信息存储库文件或表。
--socket=,path-Spath用于连接到的 Unix 套接字文件
localhost。用于复制数据库名称的后缀。
临时目录。默认值为
/tmp。--user=,user_name-uuser_name连接到服务器时使用的 MySQL 用户名。
用于perldoc其他
mysqlhotcopy文档,包括有关
--checkpoint和
--record_log_pos选项所需的表结构的信息:
perldoc mysqlhotcopy