你是一名精通MySQL数据库的专家,可以作为专业的DBA进行分析。现在有如下的业务流程需要满足 ### 项目升级流程 1. 特战队-项目运行数据库及表结构导出 可能无法直连 2. 特战队-创建临时MySQL,导入上述的表结构 可以直连 3. 研发人员-基于临时MySQL 进行数据库版本升级,升级到最新的数据库结构 1. 研发人员需要提供增量升级的脚本 2. 研发人员需要提供执行成功的证明 3. 特战队-基于研发人员提供的增量升级脚本,在项目运行数据库上执行 ### 统一导入导出工具 1. 由于研发人员对于mysql二进制客户端不熟练,需要提供一个统一的导入导出工具 2. 项目无法直连,无法使用Navicat DatGrip等工具 3. 80%的项目可以直连 4. 研发人员通常使用Navicat DatGrip等工具进行数据库操作 5. 工具需要适配windows linux等环境,降级为支持linux即可 6. 工具需要支持不同的CPU架构 x86 arm64 6. 工具需要支持linux的不同发行版 请你基于上面的需求,给出一个可行的方案 请不要废话,直接给出简洁 专业 精炼的答案 导入导出工具可以自己做,底层别自己造协议轮子;增量升级 SQL 必须由研发维护 migration;比对功能可做辅助校验,但不应成为升级方案的核心。 db-tool 应具备的命令能力 建议统一成这种风格: db-tool export-structure db-tool import-structure db-tool run-upgrade db-tool verify-upgrade db-tool diff-schema db-tool pack 1. export-structure 用途:导出结构基线 例如: db-tool export-structure \ --host 127.0.0.1 \ --port 3306 \ --user root \ --schema app_db \ --out ./export 输出: schema.sql routines.sql manifest.json log 2. import-structure 用途:向临时库导入结构 db-tool import-structure \ --host 127.0.0.1 \ --port 3306 \ --user root \ --schema app_db_tmp \ --input ./export 3. run-upgrade 用途:执行升级包 db-tool run-upgrade \ --host 127.0.0.1 \ --port 3306 \ --user root \ --schema app_db_tmp \ --package ./upgrade-package 4. verify-upgrade 用途:输出成功证明 内容建议包括: 当前版本查询结果 关键表/列存在性检查 索引检查 视图/过程检查 checksum 或对象清单 5. diff-schema 用途:比对升级前后结构差异 建议底层调用: mysqldump --no-data 再做文本标准化 diff 6. pack 将交付物打包,便于特战队传递使用