0

我收到此错误:

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

当尝试执行我的 CI 脚本的这一行时:

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

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

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

MySQL 错误 #1133 - 在用户表中找不到任何匹配的行

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。

可能是什么问题?

4

1 回答 1

2

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

此更改是为 8.0 做准备,它GRANT完全删除了创建用户的能力。

于 2018-12-21T11:53:54.580 回答