将mysql从5.6升级到5.7后,“在用户表中找不到任何匹配的行”

时间:2018-12-21 00:42:33

标签: mysql travis-ci mysql-5.7 mysql-5.6 azerothcore

我收到此错误:

  

在用户表中找不到任何匹配的行

尝试执行此行CI脚本时:

GRANT ALL PRIVILEGES ON dbname.* TO 'user'@'host' WITH GRANT OPTION;

我知道已经问过类似的问题:

Can't find any matching row in the user table

MySQL Error #1133 - Can't find any matching row in the user table

https://dba.stackexchange.com/questions/69921/error-code-1133-cant-find-any-matching-row-in-the-user-table

但是,他们都没有解决我的问题。

特别是在我的情况下,这个问题开始于我将travis-ci从使用ubuntu 14.04升级到16.04,这也将 MySQL版本从5.6更改为5.7

因此,我确定相同的代码适用于MySQL 5.6,但不适用于MySQL 5.7。

可能是什么问题?

1 个答案:

答案 0 :(得分:2)

在MySQL 5.7中,他们将默认SQL模式更改为包括NO_AUTO_CREATE_USER。这样可以防止GRANT创建用户,因此您必须改为使用CREATE USER。您还可以从服务器的SQL模式中删除此设置。

此更改是为8.0作准备的,该版本删除了GRANT完全创建用户的功能。