# mysql-db-diff **Repository Path**: Vincent_OSChina/mysql-db-diff ## Basic Information - **Project Name**: mysql-db-diff - **Description**: 简单的mysql 结构和数据对比工具脚本 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-30 - **Last Updated**: 2026-03-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MySQL 数据库对比工具 一个用于对比两个 MySQL 数据库的工具,支持表结构和数据对比,可生成差异 SQL 脚本。 ## 功能特性 - **表结构对比**: 对比两个数据库的表结构差异,生成 ALTER TABLE 等 SQL 语句 - **数据对比**: 对比两个数据库的表数据差异 - **SQL 脚本生成**: 自动生成同步所需的 SQL 脚本 - **灵活的对比模式**: 支持仅结构、仅数据、或全部对比 ## 安装 ### Debian/Ubuntu (推荐) ```bash sudo dpkg -i mysql-db-compare_1.0_all.deb ``` ### 手动安装 ```bash # 安装依赖 sudo pip install python3-pymysql # 复制脚本到系统路径 sudo cp mysql_db_compare.py /usr/local/bin/mysql-db-compare sudo chmod +x /usr/local/bin/mysql-db-compare ``` ## 使用方法 ### 基本用法 ```bash mysql-db-compare \ --source-host 192.168.1.100 \ --source-port 3306 \ --source-user root \ --source-password password \ --source-db source_database \ --target-host 192.168.1.200 \ --target-port 3306 \ --target-user root \ --target-password password \ --target-db target_database \ --mode structure \ --output hwyp-diff.sql ``` ### 参数说明 | 参数 | 说明 | 默认值 | |------|------|--------| | `--source-host` | 源数据库主机地址 | (必填) | | `--source-port` | 源数据库端口 | 3306 | | `--source-user` | 源数据库用户名 | (必填) | | `--source-password` | 源数据库密码 | (必填) | | `--source-db` | 源数据库名称 | (必填) | | `--target-host` | 目标数据库主机地址 | (必填) | | `--target-port` | 目标数据库端口 | 3306 | | `--target-user` | 目标数据库用户名 | (必填) | | `--target-password` | 目标数据库密码 | (必填) | | `--target-db` | 目标数据库名称 | (必填) | | `--mode` | 对比模式: `structure`(结构)、`data`(数据,暂时只处理了需要新增的数据)、`both`(全部) | both | | `--tables` | 指定要对比的表(可选,多个表用空格分隔) | 全部表 | | `--output` | 输出 SQL 文件路径 | diff.sql | ### 对比模式示例 仅对比表结构: ```bash mysql-db-compare --mode structure ...其他参数 ``` 仅对比数据: ```bash mysql-db-compare --mode data ...其他参数 ``` 指定对比特定表: ```bash mysql-db-compare --tables users orders products ...其他参数 ``` ## 输出说明 工具会生成一个 SQL 文件(默认 `diff.sql`),包含: 1. **结构差异 SQL** - 缺失表的 CREATE TABLE 语句 - 字段差异的 ALTER TABLE 语句 2. **数据差异统计** - 各表的数据量对比 - 差异记录数统计 ## 依赖 - Python 3.x - pymysql ## 维护者 vincent ## 发布 ### 默认打包 > * 打包环境: Debian > * 脚本安装地址: /usr/local/bin(如果没有需要创建) > * 使用的的命令是 mysqldiff --help ### 自定义打包修改 1. 初始化环境, 会生成 模板, 直接内容删除, 将debain_bak 的文件复制进去就行 ```shell dh_make --createorig -p mysql-db-compare_1.0 --email mnvictw@163.com -s -y ``` 2. debian/install 文件 ``` shell # usr/local/bin 改为自定义地址 mysql_db_compare.py usr/local/bin ``` 3. 修改 debain/mysql-db-compare.links 自定义软链接 4. 打包 ```shell sudo dpkg-buildpackage -us -uc ```