RDS for MySQL创建用户报错:Operation CREATE USER failed
场景描述
执行以下SQL新建用户saas_cash_user失败:
/*COMMON SETTINGS*/ CREATE USER 'saas_cash_user'@'10.11.3.%' IDENTIFIED BY '******'
失败原因:(conn=288831) Operation CREATE USER failed for 'saas_cash_user'@'10.11.3.%'
原因分析
如果用户旧账号是通过delete删除,再次创建用户会报错。
创建用户时,一般使用create user或者grant语句来创建,create语法创建的用户没有任何权限,需要再使用grant语法来分配权限,而grant语法创建的用户直接拥有所分配的权限。
使用drop user方法删除用户的时候,会连通db表和权限表一起清除。而使用delete from mysql.user只会删除user表里的记录,如果用show grants for username来查看,会发现这个用户的相关权限依然有残留,这时候再新建一样的用户,就会触发校验导致创建失败。
解决方案
建议删除用户使用drop命令。