园子看到使用MySQL对比数据库表结构,参考测试发现

mysql> use test;
create table test1
(id int not null primary key,
a varchar(10) not null,
b varchar(10),
c varchar(10) comment 'c',
d int
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='test1';
create table test2
(id int not null ,
a varchar(10),
b varchar(5),
c varchar(10),
D int
)
ENGINE=myisam DEFAULT CHARSET=utf8 COMMENT='test2';
[root@localhost uest]# mysqldiff --server1=root:mysql5635@localhost:3306 --server2=root:mysql5635@localhost:3306 --changes-for=server2 --show-reverse --difftype=sql test.test1:test.test2
bash: mysqldiff: command not found
[root@localhost uest]#

搜索才知道mysqldiff工具是官方MySQL-Utilities工具集的一个脚本。mysqldiff用来比较对象的定义是否相同并显示不同的地方,mysqldiff 是通过对象名称来进行比较的。
系统环境紧接上一篇,因此需下载相应的rpm包

[root@localhost tools]# wget https://cdn.mysql.com//Downloads/MySQLGUITools/mysql-utilities-1.6.5-1.el6.noarch.rpm
[root@localhost tools]# rpm -ivh mysql-utilities-1.6.-.el6.noarch.rpm
warning: mysql-utilities-1.6.-.el6.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
mysql-connector-python >= 2.0. is needed by mysql-utilities-1.6.-.el6.noarch
[root@localhost tools]#

需要依赖文件

[root@localhost tools]# wget https://cdn.mysql.com//Downloads/Connector-Python/mysql-connector-python-2.1.5-1.el6.i686.rpm
[root@localhost tools]# rpm -ivh mysql-connector-python-2.1.-.el6.i686.rpm
warning: mysql-connector-python-2.1.-.el6.i686.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ########################################### [%]
:mysql-connector-python ########################################### [%]
[root@localhost tools]# rpm -ivh mysql-utilities-1.6.-.el6.noarch.rpm
warning: mysql-utilities-1.6.-.el6.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ########################################### [%]
:mysql-utilities ########################################### [%]
[root@localhost tools]#

然后就可以执行mysqldiff命令了

[root@localhost tools]# mysqldiff --server1=root:mysql5635@localhost:3306 --server2=root:mysql5635@localhost:3306 --changes-for=server2 --skip-table-options --show-reverse --difftype=sql test.test1:test.test2
# WARNING: Using a password on the command line interface can be insecure.
# server1 on localhost: ... connected.
# server2 on localhost: ... connected.
# Comparing test.test1 to test.test2 [FAIL]
# Transformation for --changes-for=server2:
# ALTER TABLE `test`.`test2`
DROP COLUMN D,
ADD PRIMARY KEY(`id`),
CHANGE COLUMN b b varchar() NULL,
ADD COLUMN d int() NULL AFTER c,
CHANGE COLUMN a a varchar() NOT NULL,
CHANGE COLUMN c c varchar() NULL COMMENT 'c'; #
# Transformation for reverse changes (--changes-for=server1):
#
# ALTER TABLE `test`.`test1`
# DROP PRIMARY KEY,
# DROP COLUMN d,
# CHANGE COLUMN b b varchar() NULL,
# ADD COLUMN D int() NULL AFTER c,
# CHANGE COLUMN a a varchar() NULL,
# CHANGE COLUMN c c varchar() NULL;
# # Compare failed. One or more differences found.
[root@localhost tools]#

MySQL Utilities 提供一组命令行工具用于维护和管理 MySQL 服务器,可参考官方手册,或者查阅MySQL Utilities教程

最新文章

  1. Eclipse下配置javaweb项目快速部署到tomcat
  2. 经验分享:CSS浮动(float,clear)通俗讲解
  3. Count Complete Tree Nodes || LeetCode
  4. 用rem来做响应式开发
  5. Linux内核通杀提权漏洞CVE-2016-5195验证
  6. ASP.Net免费发送短信-阿里大鱼短信接口
  7. Javascript Array Distinct (array.reduce实现)
  8. fuel部署openStack
  9. performSelector的方法
  10. Oracle数据库之间数据同步
  11. Counting square
  12. sizeof,一个其貌不扬的家伙(转)
  13. ocp11g培训内部教材_053课堂笔记(043)_数据备份
  14. P3954 成绩(noip2017普及组)
  15. canvas - 简单画板
  16. TFTP Server的搭建和使用(Fedora)
  17. 利用PHP扩展Taint找出网站的潜在安全漏洞实践
  18. Redmine发布新闻,自动发送邮件功能失效恢复
  19. django学习之——我的 Hello World
  20. day10 内容大纲

热门文章

  1. 新增加的html里的标签元素,该元素作为事件,js获取不到id的问题
  2. Day 8 : Python 文档操作
  3. js中一个标签在按顺序执行没有被读取到时可以用window.onload
  4. 小tips: zoom和transform:scale的区别
  5. <数据可视化>Matplotlib(2D+3D)
  6. 最难的工作 /// SPFA模板 oj1396
  7. iOS开发系列-NSURLConnection
  8. vue-cli3使用yarn run build打包找不到路径
  9. 布局页中的特殊情况(比如说只有某页有的banner)
  10. leetccode-130-被围绕的区域