我有一个查询来检查mysql用户列表以创建新用户。
IF (SELECT EXISTS(SELECT 1 FROM `mysql`.`user` WHERE `user` = '{{ title }}')) = 0 THEN
CREATE USER '{{ title }}'@'localhost' IDENTIFIED BY '{{ password }}'
END IF;但是我得到了这个错误:
ERROR 1064 (42000) at line 3: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF (SELECT EXISTS(SELECT 1 FROM `mysql`.`user` WHERE `user` = 'cms_localhost')) = 0 ' at line 1发布于 2013-05-17 00:24:28
在5.7.6及更高版本中,您应该能够使用CREATE USER
CREATE USER IF NOT EXISTS 'user'@'localhost' IDENTIFIED BY 'password';请注意,5.7.6方法实际上并不授予任何权限。
如果您使用的不是具有此功能的版本(5.7.6以下的版本),则可以执行以下操作:
GRANT ALL ON `database`.* TO 'user'@'localhost' IDENTIFIED BY 'password';如果用户不存在,则会创建该用户
请注意,如果您使用的是MySQL 8,则GRANT ALL方法不会创建用户。
发布于 2015-05-15 16:11:56
我使用
选择EXISTS (SELECT DISTINCT user FROM mysql.user WHERE user =“is_user”)作为用户名
如果存在则返回1,如果不存在则返回0
https://stackoverflow.com/questions/13357760
复制相似问题