| Bug #66863 | mysqldiff and mysqldbcompare Fail | ||
|---|---|---|---|
| Submitted: | 18 Sep 2012 22:34 | Modified: | 24 May 2013 19:49 |
| Reporter: | Muiz Motani | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Utilities | Severity: | S2 (Serious) |
| Version: | 5.2.43 | OS: | MacOS (10.6.8) |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | mysqldbcompare, mysqldiff | ||
[21 Sep 2012 13:54]
Chuck Bell
Please include the command you used to launch the utilities so that we can successfully repeat this error.
[4 Oct 2012 22:30]
Elan Ruusamäe
the problem is that the code refers to .name which does not exist
error is triggered if client connects to server which version is older than client:
./mysql/utilities/common/server.py :
330 if not _require_version(source, version):
331 raise UtilError("The %s version is incompatible. Utility "
332 "requires version %s or higher." %
333 (source.name, version))
the source.name is what gives the AttributeError
it happpens with mysql-utilities 1.1.0 as well (mysql workench 5.2.44)
[4 Oct 2012 22:49]
Elan Ruusamäe
not sure what was intended there in the code, but so far i made it print server.host: http://git.pld-linux.org/?p=packages/mysql-utilities.git;a=blob;f=bug-66863.patch;h=21ba25...
[4 Oct 2012 22:51]
Elan Ruusamäe
now prints instead of python exception: $ mysqldiskusage --server=mysql@elfride:3306 -vvv # Source on elfride: ... connected. Usage: mysqldiskusage --server=user:pass@host:port:socket db1 --all mysqldiskusage: error: The elfride version is incompatible. Utility requires version 5.1.30 or higher.
[24 May 2013 19:49]
Chuck Bell
Fixed in release-1.1.1

Description: The mysqldiff and mysqldbcompare utilities both fail with "AttributeError: 'Server' object has no attribute 'name'". The complete traceback is: # server1 on 192.168.0.117: ... connected. Traceback (most recent call last): File "/Applications/MySQLWorkbench.app/Contents/Resources/scripts/mysqldbcompare", line 160, in <module> parts[0], parts[1], options) File "/Applications/MySQLWorkbench.app/Contents/Resources/libraries/mysql_libs.zip/mysql/utilities/command/dbcompare.py", line 414, in database_compare File "/Applications/MySQLWorkbench.app/Contents/Resources/libraries/mysql_libs.zip/mysql/utilities/common/dbcompare.py", line 186, in server_connect File "/Applications/MySQLWorkbench.app/Contents/Resources/libraries/mysql_libs.zip/mysql/utilities/common/server.py", line 333, in connect_servers AttributeError: 'Server' object has no attribute 'name' How to repeat: execute a mysqldiff or mysqldbcompare on two databases on the same server