我在尝试从本地网络上的 mysql 5.0 服务器备份世界数据库中的 City 表数据时遇到了问题:
mysqldump --tab=/home/developer/Desktop -u developer -h 192.168.10.196 -p world City
我收到此错误:
Not dumping tablespaces as no INFORMATION_SCHEMA.FILES table on this server
我的 mysqldump 版本是 10.13(来自 Mysql 服务器 5.1.49),而 192.168.10.196 上的服务器安装了 Mysql 5.0.77(该包附带的默认 mysqldump 版本是 10.11)。
mysqldump 版本有什么区别吗?为什么我不能使用 mysqldump?
谢谢!
答案1
以下是 MySQL 5.1.37 的 information_schema 中的表
+---------------------------------------+
| Tables_in_information_schema |
+---------------------------------------+
| 字符集 |
| 排序规则 | |
COLLATION_CHARACTER_SET_APPLICABILITY |
| 列 | |
COLUMN_PRIVILEGES |
| 引擎 |
| 事件 |
| 文件 |
| GLOBAL_STATUS |
| GLOBAL_VARIABLES |
| KEY_COLUMN_USAGE |
| 分区 |
| 插件 | | 过程
列表 |
| 分析 |
| REFERENTIAL_CONSTRAINTS |
| 例程 | | 模式 |
| SCHEMATA |
| SCHEMA_PRIVILEGES |
| SESSION_STATUS
| | SESSION_VARIABLES |
| 统计信息 |
| 表 |
| TABLE_CONSTRAINTS |
| TABLE_PRIVILEGES |
| 触发器 |
| USER_PRIVILEGES |
| 视图
+--------------------------------------+
28 行(0.01 秒)
以下是 MySQL 5.0.83 的 information_schema 中的表
+-----------------------------------------------------+
| Tables_in_information_schema |
+-----------------------------------------------------+
| CHARACTER_SETS |
| COLLATIONS |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS |
| COLUMN_PRIVILEGES |
| KEY_COLUMN_USAGE |
| PROFILING |
| ROUTINES |
| SCHEMATA |
| SCHEMA_PRIVILEGES |
| STATISTICS |
| TABLES |
| TABLE_CONSTRAINTS |
| TABLE_PRIVILEGES |
| TRIGGERS |
| USER_PRIVILEGES |
| VIEWS |
+---------------------------------------+
集合中有 17 行(0.00 秒)
显然,mysqldump for 5.1 假定所有 5.1 information_schema 表都存在。最好的办法是将 mysql 5.0 安装在机器上的其他地方,并使用安装 MySQL 5.0 的绝对路径调用该二进制可执行文件 mysqldump,或者,您可以使用另一台安装了 MySQL 5.0 的 Linux 机器并远程执行 mysqldump。
答案2
哦 - 我明白了。如果我使用 --tab 选项 - 实际上会创建 2 个文件:包含原始制表符分隔数据的 sql 和仅包含 sql 架构的 txt。
而且 - sql 文件会进入您的计算机并归您所有。而 txt 则保留在服务器上的数据目录中并归服务器所有。
所以.....那里...我们有不同的所有权。
Mysql 手册建议您只需 ssh 连接到服务器并设置服务器可以访问的目录,您喜欢 tmp: 因此 - 这有效(通过 ssh):
mysqldump --tab=/tmp -p world City