Praveen Prasannan Asked: 2013-09-28 01:21:33 +0800 CST2013-09-28 01:21:33 +0800 CST 2013-09-28 01:21:33 +0800 CST Mysqldump 从哪里获取数据 772 mysqldump 如何处理备份? 它从哪些文件中读取数据以创建转储? 如果存储引擎不同,过程是否不同? mysql mysqldump 1 个回答 Voted Best Answer Shlomi Noach 2013-09-28T03:12:52+08:002013-09-28T03:12:52+08:00 mysqldump是一个客户端应用程序。它使用“正常”凭据和数据查询连接到 MySQL 服务器。 除了可以向服务器请求的数据外,它无法立即访问数据。mysqldump二进制文件不必与 MySQL 服务器在同一主机上运行。因此很明显它不能直接访问文件。 在转储期间打开通用日志以了解其工作原理是有益的。 例如,您可能会在常规日志查询中看到如下内容: 29 Query SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'test' 29 Query COMMIT 29 Query SHOW CREATE TABLE `test`.`t1` 29 Query COMMIT 29 Query SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'test' 29 Query COMMIT 29 Query SHOW CREATE TABLE `test`.`t2` 29 Query COMMIT 29 Query SELECT TABLE_SCHEMA, TABLE_NAME, ENGINE, AUTO_INCREMENT, AVG_ROW_LENGTH, CHECKSUM, TABLE_COLLATION, TABLE_COMMENT, ROW_FORMAT, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 't1' 29 Query COMMIT 如您所见,mysqldump通过 查询架构IFNORMATION_SCHEMA。随后通过标准获取所有数据SELECT: 6 Query SELECT /*!40001 SQL_NO_CACHE */ * FROM `t1` 因此,mysqldump的强大之处在于正确地迭代所有对象并查询数据,然后生成 SQL 语句来生成这些对象。 由于mysqldump作为任何普通客户端访问(如上所示SELECT),它不关心存储引擎,除了关心将什么导出为表的引擎。由 MySQL 服务器访问引擎(通过存储引擎 API)并获取数据。
mysqldump是一个客户端应用程序。它使用“正常”凭据和数据查询连接到 MySQL 服务器。
除了可以向服务器请求的数据外,它无法立即访问数据。mysqldump二进制文件不必与 MySQL 服务器在同一主机上运行。因此很明显它不能直接访问文件。
在转储期间打开通用日志以了解其工作原理是有益的。
例如,您可能会在常规日志查询中看到如下内容:
如您所见,mysqldump通过 查询架构
IFNORMATION_SCHEMA
。随后通过标准获取所有数据SELECT
:因此,mysqldump的强大之处在于正确地迭代所有对象并查询数据,然后生成 SQL 语句来生成这些对象。
由于mysqldump作为任何普通客户端访问(如上所示
SELECT
),它不关心存储引擎,除了关心将什么导出为表的引擎。由 MySQL 服务器访问引擎(通过存储引擎 API)并获取数据。