如果不存在MySQL创建用户

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (89)

我有一个查询要检查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
提问于
用户回答回答于

在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';

如果用户不存在,这将创建用户

扫码关注云+社区