Bug #80020 mysqlfrm doesn't work with 5.7
Submitted: 17 Jan 2016 22:23 Modified: 18 Jan 2016 7:05
Reporter: Aleksandr Kuzminsky Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Utilities Severity:S3 (Non-critical)
Version:1.3.5-2 OS:Ubuntu (14.04)
Assigned to: CPU Architecture:Any
Tags: 5.7, mysqlfrm

[17 Jan 2016 22:23] Aleksandr Kuzminsky
Description:
mysqlfrm doesn't work with MySQL 5.7
It looks like it starts an instance but can't connect to it and after the timeout exits with an error.

mysqlfrm --basedir /usr/share/twindb/mysql-5.7.10-linux-glibc2.5-x86_64 --port 3100 --user=mysql --verbose some.frm
# Spawning server with --user=mysql.
# Starting the spawned server on port 3100 ... ERROR Attempting to stop failed spawned server.  Process id = 28664.
ERROR: Spawn server operation failed. Clone server error: Unable to communicate with new instance. Process id = 28664.. To diagnose, run the utility again and use the --verbosity option to view the messages from the spawned server and correct any errors presented then run the utility again.

--verbose doesn't make it more verbose at all so, strace output:

connect(5, {sa_family=AF_LOCAL, sun_path="/mnt/data/recovery/1c2qhndo5j3h8a07bh2rg92nl6/input_files/18a95e27-675a-4939-bf83-6a58a8029186/mysql.sock"}, 107) = 0
recvfrom(5, "J", 1, 0, NULL, NULL)      = 1
recvfrom(5, "\0", 1, 0, NULL, NULL)     = 1
recvfrom(5, "\0", 1, 0, NULL, NULL)     = 1
recvfrom(5, "\0", 1, 0, NULL, NULL)     = 1
recvfrom(5, "\n5.7.10\0\3\0\0\0,%qmn`<\\\0\377\367\10\2\0\377\201\25\0\0\0"..., 74, 0, NULL, NULL) = 74
sendto(5, "'\0\0\1\r\242\3\0\0\0\0@!\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 43, 0, NULL, 0) = 43
recvfrom(5, "G", 1, 0, NULL, NULL)      = 1
recvfrom(5, "\0", 1, 0, NULL, NULL)     = 1
recvfrom(5, "\0", 1, 0, NULL, NULL)     = 1
recvfrom(5, "\2", 1, 0, NULL, NULL)     = 1
recvfrom(5, "\377\25\4#28000Access denied for user "..., 71, 0, NULL, NULL) = 71
close(5)                                = 0

How to repeat:
Download http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz

Run mysqlfrm with any .frm file

mysqlfrm --basedir /usr/share/twindb/mysql-5.7.10-linux-glibc2.5-x86_64 --port 3100 --user=mysql --verbose any.frm

Suggested fix:
 Start mysqld with --skip-grant-tables option?
[18 Jan 2016 6:03] Umesh Shastry
Hello Aleksandr,

Thank you for the report.
I'm not seeing this issue with MySQL Utilities 1.5.6 build.
Could you please upgrade to latest MySQL Utilities 1.5.6 and let us know if you are still having this issue at your end then feel free change the status back to 'Open'.

-- MySQL version 5.7.10, MySQL Utilities 1.5.6

[root@cluster-repo ~]# mysqlfrm --basedir /usr --port 3316 --user=root --verbose /var/lib/mysql/test/order.frm
# Spawning server with --user=root.
# Starting the spawned server on port 3316 ... done.
# Reading .frm files
#
# Reading the order.frm file.
#
# CREATE statement for /var/lib/mysql/test/order.frm:
#

CREATE TABLE `test`.`order` (
  `id` int(10) unsigned NOT NULL,
  `value` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

#...done.
[root@cluster-repo ~]# mysqlfrm --version
MySQL Utilities mysqlfrm version 1.5.6
License type: GPLv2

[root@cluster-repo ~]# rpm -qa|grep mysql-community-server
mysql-community-server-5.7.10-2.el6.x86_64

Thanks,
Umesh
[18 Jan 2016 6:38] Aleksandr Kuzminsky
I can confirm that 1.5.6 fixes the issue.

Thank you!
[18 Jan 2016 7:05] Umesh Shastry
Thank you Aleksandr for confirming, closing the bug for now.

Thanks,
Umesh