- 浏览: 7935898 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
mysqldiff该工具是官方mysql-utilities工具集的一个脚本,可以用来对比不同数据库之间的表结构,或者同个数据库间的表结构
如果在windows下,直接下载mysql-utilities安装就可以了,然后运行后,会跑到命令行下:
1) 基本用法
mysqldiff --server1=admin:123456@192.168.79.10 --server2=admin:123456@192.168.79.11
--difftype=differ test:test
这样就比较两个不同库中的数据库test,假设两个库中库名都是test
也可以比较不同的表
mysqldiff --server1=user@host1 --server2=user@host2 testdb.table1:anotherdb.anothertable
就是使用库名.表名的方式就可以了
下面是出来的一个效果
# mysqldiff --force --server1=root:msandbox@127.0.0.1:21489 --server2=root:msandbox@127.0.0.1:21490 employees:employees
# WARNING: Using a password on the command line interface can be insecure.
# server1 on 127.0.0.1: ... connected.
# server2 on 127.0.0.1: ... connected.
# Comparing `employees` to `employees` [PASS]
# Comparing `employees`.`departments` to `employees`.`departments` [FAIL]
# Object definitions differ. (--changes-for=server1)
#
--- `employees`.`departments`
+++ `employees`.`departments`
@@ -1,6 +1,6 @@
CREATE TABLE `departments` (
`dept_no` char(4) NOT NULL,
- `dept_name` varchar(40) NOT NULL,
+ `dept_name` varchar(256) DEFAULT NULL,
PRIMARY KEY (`dept_no`),
UNIQUE KEY `dept_name` (`dept_name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
可以看到,默认-号代表左边要比较的server1的变化,+号代表右边server2的不同,
如果要交换,可以使用参数:
–changes-for=server2
如果要在比较不同的时候,强行继续比较下去,要增加--force选项
2) 可以生成差异化的SQL,因为方法1)中,只产生了不同的地方,但如为了生产考虑,
要生成达到server2的脚本,则可以使用参数
--difftype=sql,
则:
mysqldiff --server1=admin:123456@192.168.79.10 --server2=admin:123456@192.168.79.11
--difftype=sql test:test
mysqldiff的核心是使用INFORMATION_SCHEMA
如果在windows下,直接下载mysql-utilities安装就可以了,然后运行后,会跑到命令行下:
1) 基本用法
mysqldiff --server1=admin:123456@192.168.79.10 --server2=admin:123456@192.168.79.11
--difftype=differ test:test
这样就比较两个不同库中的数据库test,假设两个库中库名都是test
也可以比较不同的表
mysqldiff --server1=user@host1 --server2=user@host2 testdb.table1:anotherdb.anothertable
就是使用库名.表名的方式就可以了
下面是出来的一个效果
# mysqldiff --force --server1=root:msandbox@127.0.0.1:21489 --server2=root:msandbox@127.0.0.1:21490 employees:employees
# WARNING: Using a password on the command line interface can be insecure.
# server1 on 127.0.0.1: ... connected.
# server2 on 127.0.0.1: ... connected.
# Comparing `employees` to `employees` [PASS]
# Comparing `employees`.`departments` to `employees`.`departments` [FAIL]
# Object definitions differ. (--changes-for=server1)
#
--- `employees`.`departments`
+++ `employees`.`departments`
@@ -1,6 +1,6 @@
CREATE TABLE `departments` (
`dept_no` char(4) NOT NULL,
- `dept_name` varchar(40) NOT NULL,
+ `dept_name` varchar(256) DEFAULT NULL,
PRIMARY KEY (`dept_no`),
UNIQUE KEY `dept_name` (`dept_name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
可以看到,默认-号代表左边要比较的server1的变化,+号代表右边server2的不同,
如果要交换,可以使用参数:
–changes-for=server2
如果要在比较不同的时候,强行继续比较下去,要增加--force选项
2) 可以生成差异化的SQL,因为方法1)中,只产生了不同的地方,但如为了生产考虑,
要生成达到server2的脚本,则可以使用参数
--difftype=sql,
则:
mysqldiff --server1=admin:123456@192.168.79.10 --server2=admin:123456@192.168.79.11
--difftype=sql test:test
mysqldiff的核心是使用INFORMATION_SCHEMA
SHOW CREATE TABLE `departments`; 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 = 'employees' AND TABLE_NAME = 'departments'; SELECT ORDINAL_POSITION, COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_DEFAULT, EXTRA, COLUMN_COMMENT, COLUMN_KEY FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'employees' AND TABLE_NAME = 'departments'; SELECT PARTITION_NAME, SUBPARTITION_NAME, PARTITION_ORDINAL_POSITION, SUBPARTITION_ORDINAL_POSITION, PARTITION_METHOD, SUBPARTITION_METHOD, PARTITION_EXPRESSION, SUBPARTITION_EXPRESSION, PARTITION_DESCRIPTION FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA = 'employees' AND TABLE_NAME = 'departments'; SELECT CONSTRAINT_NAME, COLUMN_NAME, REFERENCED_TABLE_SCHEMA, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = 'employees' AND TABLE_NAME = 'departments' AND REFERENCED_TABLE_SCHEMA IS NOT NULL; 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 = 'employees' AND TABLE_NAME = 'departments'; SELECT ORDINAL_POSITION, COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_DEFAULT, EXTRA, COLUMN_COMMENT, COLUMN_KEY FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'employees' AND TABLE_NAME = 'departments'; SELECT PARTITION_NAME, SUBPARTITION_NAME, PARTITION_ORDINAL_POSITION, SUBPARTITION_ORDINAL_POSITION, PARTITION_METHOD, SUBPARTITION_METHOD, PARTITION_EXPRESSION, SUBPARTITION_EXPRESSION, PARTITION_DESCRIPTION FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA = 'employees' AND TABLE_NAME = 'departments';
发表评论
-
让 InnoDB 多任务运行
2018-09-06 16:06 781今天偶然看到的一招,记录下 如果服务器上的参数 innodb_ ... -
mysql中查询连接工作状态
2018-05-31 15:13 682#!/bin/bash while true do mysql ... -
MYSQL BACKUP的SHELL相关语句
2018-05-25 20:33 545#!/bin/bash ###############Basi ... -
MySQL This function has none of DETERMINISTIC, NO SQL...错误1418 的原因分析及解决方法
2018-05-08 11:17 615MySQL开启bin-log后,调用存储过程或者函数以及触发器 ... -
NUMA的选择
2018-04-24 09:52 1402现在的机器上都是有 ... -
关于MYSQL 5.7线程池的好文收集
2018-03-27 10:57 1526来自腾讯工程师的好文: https://www.jianshu ... -
MYSQL 的审计日志插件
2017-11-30 10:19 1279MYSQL 的审计日志插件,可惜目前只是LINUX用: 来自M ... -
(转)MySQL InnoDB缓冲池配置详解
2017-10-09 16:55 4062一、InnoDB缓冲池 InnoDB维护一个称为缓冲池的内存 ... -
(转)MySQL 5.7默认SQL模式带来的问题总结
2017-10-05 18:46 1862http://www.ywnds.com/?p=8865 在 ... -
(转)MySQL 5.7默认ONLY_FULL_GROUP_BY语义介绍
2017-10-05 18:45 1185http://www.ywnds.com/?p=8184 ON ... -
MySQL 5.6 新功能之 Index Condition Pushdown (ICP)
2017-10-05 15:52 789http://www.cnblogs.com/zhoujiny ... -
mysql 5.7中的MBR和BKA算法
2017-10-03 15:11 1716一、什么是MRR MMR全称是Multi-Range Re ... -
(收藏)万字总结:学习MySQL优化原理,这一篇就够了!
2017-09-30 23:37 1187http://dbaplus.cn/news-155-1531 ... -
(转)MySQL中NULL和空值的区别
2017-09-23 15:57 2228MySQL中NULL和空值的区别 http://www.yw ... -
mysql 5.7中关于count(*)的优化
2017-09-20 19:15 2348在mysql 5.7中,对于select count(*) f ... -
MySQL 索引设计概要
2017-09-12 21:12 512<<MySQL 索引设计概要>>,不错 ... -
10分钟学会理解和解决MySQL乱码问题
2017-07-22 18:21 543http://cenalulu.github.io/mysql ... -
MySQL的or/in/union与索引优化
2017-07-22 08:29 951https://mp.weixin.qq.com/s/ZWez ... -
MYSQL中查看某个表或库的大小语句
2017-04-02 09:12 1955在information_schema.tables中有相关记 ... -
(收藏)MYSQL大表方案
2017-01-09 19:58 1434https://segmentfault.com/a/1190 ...
相关推荐
4. **命令行界面**:除了通过编程调用,Python-mysqldiff还提供了命令行接口,允许用户直接在终端上运行,进行快速的数据库对比和同步操作。 5. **灵活性**:Python-mysqldiff支持自定义配置,可以根据项目的具体...
一个简单JAVA 小工程进行两个MYSQL数据库对象的比较,导入eclipse中,修改jdbc.properties文件中的JDBC信息,然后直接运行action包类中的main方法,生成EXCEL,excel中包含表,表中列,索引,函数过程差异比对结果。...
除了 `mysqldiff`,还有 `mysqldbcompare` 也提供了类似功能,可以用于比较数据库或表的数据和结构,以便进行数据库一致性验证。 总结来说,`mysqldiff` 是一款强大的 MySQL 数据库结构比较工具,通过灵活的参数...
1. 两个 MYSQL 数据库对象结构比对工具 (比如:本地测试库、远程运维库表结构、表中列等对比) 2. 比对结果导出EXCEL 存放于 “工程根目录”/export/ 目录下 3. 比对的对象包括 表、表列、表索引、表分区差异、...
在IT行业中,数据库管理和数据迁移是一项常见的任务,尤其是在多个数据库之间进行比较和同步时。这里我们关注的是如何使用PHP和SQL来实现这个目的。标题提到的"php对比两个mysql数据库显示差异并生成更新SQL语句,...
MySQL-Diff是一套Perl模块和随附的CLI脚本mysqldiff用于比较两个MySQL / MariaDB数据库的模式。 先决条件 该套件需要Perl 5.14或更高版本以及与MySQL兼容的客户端实用程序套件(mysql和mysqldump)。 您至少需要Perl...
在压缩包子文件“mysqldiff-master”中,"mysqldiff"可能是这个工具的名字,而“master”可能表示这是项目的主分支或者最新版本。通常,开源项目会将源代码托管在Git等版本控制系统中,"master"分支代表了项目的主要...
AdeptSQL Diff是一款高效且用户友好的数据库对比工具,专为数据库管理员、开发人员以及对数据一致性有高要求的用户设计。 AdeptSQL Diff的主要功能是对比并同步两个数据库之间的差异。它支持多种数据库类型,包括但...
首先,`mysqldiff`是MySQL Utilities软件包的一部分,它允许用户比较两个MySQL数据库或数据库中的表,并生成一个SQL脚本来同步它们。要安装`mysqldiff`,你需要先确保安装了`mysql-connector-python`,这是MySQL ...
通过本文的介绍,您应该对如何备份 MySQL 数据库有了更深入的理解。合理的备份策略和定期的备份操作是确保数据安全的关键。备份不仅仅是技术层面的操作,更是一种风险管理的策略。只有通过科学的规划和严格的执行,...
数据库表差异一种快速比较来自多个来源(MySQL、PostgreSQL、SQLite)的数据库并查看表结构之间差异的方法。 当前状态:比较表名和表列名。特征节省比较数据库表结构的时间支持 MySQL、PostgreSQL、SQLite 不同...
`Laravel开发-db-diff` 正是为了解决这一问题而设计的一个工具,它专注于帮助Laravel开发者便捷地比较和同步MySQL数据库的结构差异。 `Laravel开发-db-diff` 是一个扩展工具,它扩展了Laravel的内置数据库迁移功能...
1. **结构对比**:比较两个数据库的架构,找出表、视图、存储过程、函数、索引、约束等对象的差异,并生成同步脚本进行更新。 2. **数据对比**:除了结构之外,还能对比数据库中的实际数据,检查记录是否存在、缺失...
它比较本地或远程的两个数据库,并自动生成差异的迁移文件。 与一起使用时,它可以帮助在您的团队或企业内实现数据库版本控制。 支持DBDiff DBDiff是MIT许可的开源项目,其持续的开发完全依靠支持者的支持。 要...
- **实例**:展示如何使用 `mysqldiff` 来比较两个数据库。 - **权限**:需要具备对两个数据库的读权限。 #### 七、mysqldbcopy 改变存储引擎 - **实例**:演示如何使用 `mysqldbcopy` 更改表的存储引擎。 - **权限...
5. **mysqldiff**: 比较数据库对象(如表、视图、存储过程)的定义,帮助用户识别差异,便于更新数据库结构。 使用MySQL Utilities,数据库管理员能够更高效、更安全地管理他们的MySQL环境,提升工作效率,降低错误...
这些函数可以对日期和时间进行各种操作,例如计算日期和时间的差异、获取日期和时间的各种组成部分、对日期和时间进行加减运算等。 1. TO_DAYS 函数 TO_DAYS 函数用于将日期转换为天数,例如: mysql> SELECT TO_...