December 4, 2018

MySQL mysqldiff commands

mysqldiff utility in MySQL

mysqldiff         Compare object definitions among objects where the difference is how db1.obj1 differs from db2.obj2

mysqldiff utility reads the definitions of objects and compares them using diff method (like UNIX diff command) to determine whether MySQL database objects are the same or not. And displays the differences for objects which are not same.

/usr/bin/mysqldiff --help
mysqldiff --version

mysqldiff --server1=root@localhost employees:emp1
mysqldiff --server1=root@localhost --server2=root@host2:3308 employees.salaries:emp.salaries --difftype=differ

mysqldiff  --server1=master --server2=slave masterdb:slavedb
mysqldiff  --server1=master --server2=slave testdb:testdb --width=120

mysqldiff  --server1=host1 --server2=host2 devdb.emp:devdb.emp -v
mysqldiff  --server1=host1 --server2=host2 devdb.emp:devdb.emp -vvv

mysqldiff  --server1=dba_master --server2=dba_slave --changes-for=server2 --force --difftype=sql testdb:testdb
mysqldiff  --server1=prod_host:3306 --server2=dev_host:3306 --changes-for=server2 --force --difftype=sql testdb:testdb

mysqldiff --server1=root@host1 --server2=root@host2 --difftype=sql db1:db2
mysqldiff --server1=root@host1 --server2=root@host2 --difftype=context db1.table1:dbx.table3


mysql diff command options:
  --version             show program's version number and exit
  --help                 display a help message and exit
  --license             display program's license and exit

  --ssl-ca=SSL_CA       path to a file that contains a list of trusted SSL CAs.
  --ssl-cert=SSL_CERT   name of the SSL certificate file to use for establishing a secure connection.
  --ssl-key=SSL_KEY     name of the SSL key file to use for establishing a secure connection.
  --ssl=SSL             specifies if the server connection requires use of SSL. If an encrypted connection cannot be established, the connection attempt fails. By default 0 (SSL not required).

  --server1=SERVER1     connection information for first server in the form:
                        user[:password]@host[:port][:socket] or login-path[:port][:socket] or config-path[[group]].
  --server2=SERVER2     connection information for second server in the form:
                       user[:password]@host[:port][:socket] or login-path[:port][:socket] or config-path[[group]].

  --character-set=CHARSET  sets the client character set. The default is retrieved from the server variable 'character_set_client'.
  --width=WIDTH         display width
  --force                      do not abort when a diff test fails
  -c, --compact            compact output from a diff.
  --skip-table-options   skip check of all table options (e.g., AUTO_INCREMENT, ENGINE, CHARSET, etc.).
  -v, --verbose         control how much information is displayed. e.g., -v = verbose, -vv = more verbose, -vvv = debug
  -q, --quiet             turn off all messages for quiet execution.

  -d DIFFTYPE, --difftype=DIFFTYPE  display differences in context format in one of the following formats: [unified|context|differ|sql] (default: unified).
  --changes-for=CHANGES_FOR  specify the server to show transformations to match the other server. For example, to see the transformation for transforming server1 to match server2, use --changes-for=server1. Valid values are 'server1' or 'server2'. The default is 'server1'.
  --show-reverse        produce a transformation report containing the SQL statements to transform the object definitions specified in reverse. For example if --changes-for is  set to server1, also generate the transformation for server2. Note: the reverse changes are annotated and marked as comments.


Related MySQL Articles:  mysqldbcompare utility   mysqlrplcheck replication check utility


No comments:

Post a Comment