此实用程序在 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
-h
host_name
用于与本地服务器建立 TCP/IP 连接的本地主机的主机名。默认情况下,
localhost
使用 Unix 套接字文件建立连接。完成后不要删除以前的(重命名的)目标。
复制文件的方法(
cp
或scp
)。默认值为cp
。不要
MyISAM
在备份中包含表的完整索引文件。这使得备份更小更快。稍后可以使用myisamchk -rq重建重新加载表的索引 。--password=
,password
-p
password
连接到服务器时使用的密码。与其他 MySQL 程序不同,此选项的密码值不是可选的。
在命令行上指定密码应该被认为是不安全的。为避免在命令行中提供密码,请使用选项文件。请参阅 第 6.1.2.1 节,“密码安全的最终用户指南”。
--port=
,port_num
-P
port_num
The TCP/IP port number to use when connecting to the local server.
In MySQL 5.6, mysqlhotcopy uses
FLUSH TABLES
to flush and lock tables. Use thetbl_list
WITH READ LOCK--old_server
option if the server is older than 5.5.3, which is when that statement was introduced.--quiet
,-q
Be silent except for errors.
--record_log_pos=
db_name
.tbl_name
Record source and replica status in the specified database
db_name
and tabletbl_name
.Copy all databases with names that match the given regular expression.
Reset the binary log after locking all the tables.
锁定所有表后重置源信息存储库文件或表。
--socket=
,path
-S
path
用于连接到的 Unix 套接字文件
localhost
。用于复制数据库名称的后缀。
临时目录。默认值为
/tmp
。--user=
,user_name
-u
user_name
连接到服务器时使用的 MySQL 用户名。
用于perldoc
其他
mysqlhotcopy文档,包括有关
--checkpoint
和
--record_log_pos
选项所需的表结构的信息:
perldoc mysqlhotcopy