我正在尝试执行此查询-
DROP DATABASE IF EXISTS `hotel`; GRANT USAGE ON *.* TO 'user'@'localhost'; DROP USER 'user'@'localhost'; CREATE USER user@localhost IDENTIFIED BY 'user'; CREATE DATABASE `hotel` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; GRANT USAGE ON *.* to 'user'@'localhost' identified by 'user';
但是我总是会出错
GRANT USAGE ON *.* TO 'user'@'localhost' Error Code: 1133. Can't find any matching row in the user table 0.000 sec
我认为Grant usage如果用户不存在,则创建新用户。怎么了?
Grant usage
我认为,如果用户不存在,则Grant用法会创建新用户。怎么了?
在以前的mysql版本中就是这种情况。如果您想以新方式进行操作,请参见此答案。如果您想修改系统设置以使其像以前一样工作,请继续阅读。但是,请注意,这是不推荐使用的行为,因为链接文档指出:
NO_AUTO_CREATE_USER将在以后的MySQL版本中删除,届时将始终启用它的效果(GRANT不会创建帐户)
从文档中,您可以设置一个选项,以允许mysql创建用户(如果不存在)。
NO_AUTO_CREATE_USER 除非另外指定了非空密码,否则要防止GRANT语句自动创建新用户。
NO_AUTO_CREATE_USER
除非另外指定了非空密码,否则要防止GRANT语句自动创建新用户。
设置选项:
通过使用SET [GLOBAL | SESSION] sql_mode =’modes’语句设置sql_mode系统值,可以在运行时更改SQL模式。