首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql创建用户(如果不存在

mysql创建用户(如果不存在
EN

Stack Overflow用户
提问于 2012-11-13 16:47:43
回答 2查看 77.1K关注 0票数 107

我有一个查询来检查mysql用户列表以创建新用户。

代码语言:javascript
复制
IF (SELECT EXISTS(SELECT 1 FROM `mysql`.`user` WHERE `user` = '{{ title }}')) = 0 THEN
    CREATE USER '{{ title }}'@'localhost' IDENTIFIED BY '{{ password }}'
END IF;

但是我得到了这个错误:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-17 00:24:28

在5.7.6及更高版本中,您应该能够使用CREATE USER

代码语言:javascript
复制
CREATE USER IF NOT EXISTS 'user'@'localhost' IDENTIFIED BY 'password';

请注意,5.7.6方法实际上并不授予任何权限。

如果您使用的不是具有此功能的版本(5.7.6以下的版本),则可以执行以下操作:

代码语言:javascript
复制
GRANT ALL ON `database`.* TO 'user'@'localhost' IDENTIFIED BY 'password';

如果用户不存在,则会创建该用户

请注意,如果您使用的是MySQL 8,则GRANT ALL方法不会创建用户。

票数 303
EN

Stack Overflow用户

发布于 2015-05-15 16:11:56

我使用

选择EXISTS (SELECT DISTINCT user FROM mysql.user WHERE user =“is_user”)作为用户名

如果存在则返回1,如果不存在则返回0

票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13357760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档