MySQL创建一个变量的用户?

您可以为此使用动态查询。首先为用户名设置变量名,为密码设置变量名。语法如下-

SET @anyVariableName=’yourUserName’;
SET @anyVariableName1=’yourpassword’;

现在,您可以使用CONCAT()MySQL中的函数。语法如下-

SET @yourQueryName = CONCAT
('
   CREATE USER "',@anyVariableName,'"@"localhost" IDENTIFIED BY "',@anyVariableName1,'" '
);

让我们使用准备好的语句PREPARE。语法如下-

PREPARE yourStatementVariableName FROM @yourQueryName;

现在您可以执行该语句。语法如下-

EXECUTE yourStatementVariableName;

使用DEALLOCATE PREPARE取消分配上述内容。语法如下-

DEALLOCATE PREPARE yourStatementVariableName;

要了解上述语法,让我们遵循所有步骤-

步骤1-首先使用SET命令创建两个变量,一个用于用户名,第二个用于密码。

查询如下创建用户名-

mysql> set @UserName:='John Doe';

查询创建密码。

mysql> set @Password:='John Doe 123456';

步骤2-现在使用该CONCAT()方法创建一个用户。查询如下-

mysql> SET @CreationOfUser = CONCAT('
   '> CREATE USER "',@UserName,'"@"localhost" IDENTIFIED BY "',@Password,'" '
   -> );

在上面的查询中,我们使用了@UserName变量名和@Password变量名来创建具有名称和密码的用户。

步骤3-现在您需要使用上面的用户定义变量@CreationOfUser准备语句。查询如下-

mysql> PREPARE st FROM @CreationOfUser;
Statement prepared

步骤4-执行上面准备的语句。查询如下-

mysql> EXECUTE st;

步骤5-检查用户“ John Doe”已在MySQL.user表中创建-

mysql> select user,host from MySQL.user;

以下是输出-

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| Manish           | %         |
| User2            | %         |
| mysql.infoschema | %         |
| mysql.session    | %         |
| mysql.sys        | %         |
| root             | %         |
| @UserName@       | localhost |
| Adam Smith       | localhost |
| John             | localhost |
| John Doe         | localhost |
| User1            | localhost |
| am               | localhost |
| hbstudent        | localhost |
+------------------+-----------+
13 rows in set (0.00 sec)

是的,我们有John Doe的用户名。

步骤6-现在,取消预准备的语句。查询如下-

mysql> DEALLOCATE PREPARE st;