MySQL 5.5 升级到 MySQL5.6,在什么都没有更改的情况下,直接将data放置到MySQL 5.6下运行,一开始就一切正常,但在新加一个数据库后,分配权限时,就出错了:
ERROR 2013 (HY000): Lost connection to MySQL server during query
一开始以为是连接不上socket,因为同时有看到错误:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock
但查看之后,发现sock正常,没任何问题,然后就跑到官网下面看mysql 5.6升级指南,其中有这么一段:
After upgrading to a new version of MySQL, run mysql_upgrade (see Section 4.4.7, “mysql_upgrade — Check and Upgrade MySQL Tables”). This program checks your tables, and attempts to repair them if necessary. It also updates your grant tables to make sure that they have the current structure so that you can take advantage of any new capabilities. (Some releases of MySQL introduce changes to the structure of the grant tables to add new privileges or features.)
mysql_upgrade does not upgrade the contents of the help tables. For upgrade instructions, see Section 5.1.10, “Server-Side Help”.
mysql_upgrade should not be used when the server is running with --gtid-mode=ON, since it may make changes in nontransactional system tables in the mysql database, many of which are MyISAM and cannot be changed to use a different storage engine. See GTID mode and mysql_upgrade.
那就明白了,执行一下:
mysql_upgrade -u root -p
执行完后,再执行grant语句,问题解决。