"Can't find any matching row in the user table" 从 5.6 升级到 5.7 后 mysql
"Can't find any matching row in the user table" after upgrading mysql from 5.6 to 5.7
我收到这个错误:
Can't find any matching row in the user table
尝试执行我的 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
然而,none 解决了我的问题。
特别是,就我而言,这个问题是在我将我的 travis-ci 从使用 ubuntu 14.04 升级到 16.04 之后开始的,这也改变了 MySQL 版本从 5.6 到 5.7.
所以我确定相同的代码适用于 MySQL 5.6,但不适用于 MySQL 5.7。
可能是什么问题?
在 MySQL 5.7 中,他们更改了默认的 SQL 模式以包含 NO_AUTO_CREATE_USER
。这会阻止 GRANT
创建用户,因此您必须改用 CREATE USER
。您也可以从服务器的 SQL 模式中删除此设置。
此更改是为 8.0 做准备,它完全删除了 GRANT
创建用户的能力。
我收到这个错误:
Can't find any matching row in the user table
尝试执行我的 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
然而,none 解决了我的问题。
特别是,就我而言,这个问题是在我将我的 travis-ci 从使用 ubuntu 14.04 升级到 16.04 之后开始的,这也改变了 MySQL 版本从 5.6 到 5.7.
所以我确定相同的代码适用于 MySQL 5.6,但不适用于 MySQL 5.7。
可能是什么问题?
在 MySQL 5.7 中,他们更改了默认的 SQL 模式以包含 NO_AUTO_CREATE_USER
。这会阻止 GRANT
创建用户,因此您必须改用 CREATE USER
。您也可以从服务器的 SQL 模式中删除此设置。
此更改是为 8.0 做准备,它完全删除了 GRANT
创建用户的能力。