我收到此错误:
在用户表中找不到任何匹配的行
尝试执行此行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
但是,他们都没有解决我的问题。
特别是在我的情况下,这个问题开始于我将travis-ci从使用ubuntu 14.04升级到16.04,这也将 MySQL版本从5.6更改为5.7 。
因此,我确定相同的代码适用于MySQL 5.6,但不适用于MySQL 5.7。
可能是什么问题?
答案 0 :(得分:2)
在MySQL 5.7中,他们将默认SQL模式更改为包括NO_AUTO_CREATE_USER
。这样可以防止GRANT
创建用户,因此您必须改为使用CREATE USER
。您还可以从服务器的SQL模式中删除此设置。
此更改是为8.0作准备的,该版本删除了GRANT
完全创建用户的功能。