检查mysql用户是否存在

ser*_*ogx 22 mysql

如何检查用户是否存在?

我正在为mysql数据库做一个安装程序,我需要检查一个用户是否退出,如果没有创建用户,如果是删除用户并再次创建它.

这样我就可以毫无后顾之忧地执行脚本了.

谢谢.

Lau*_*nen 61

MySQL将用户数据存储在user名为mysql(默认情况下)的数据库中的表中.1如果存在具有指定用户名的用户,则返回以下查询,0否则返回.

SELECT EXISTS(SELECT 1 FROM mysql.user WHERE user = 'username')
Run Code Online (Sandbox Code Playgroud)


Mat*_*att 6

如果您正在删除MySQL用户,那么实际上不需要先检查它是否存在.如果没有要删除的内容,MySQL不会抛出任何错误:

DELETE FROM mysql.user WHERE User = 'username';
Run Code Online (Sandbox Code Playgroud)

  • 这将从用户表中删除用户,如果你采用这种方法,你也要从mysql.columns_priv,mysql.db,mysql.tables_priv中删除.此表的列表可能会在将来的MySQL版本中更改. (10认同)
  • 永远不会以这种方式删除用户.使用`DROP USER`命令. (4认同)

小智 6

由于较新版本的 MySQL 允许此选项:

DROP USER IF EXISTS 'username'@'host';
Run Code Online (Sandbox Code Playgroud)