如何使用MySQL CREATE USER语句创建用户帐户

时间:2019-11-20 08:52:34  来源:igfitidea点击:

简介:在本教程中,您将学习如何使用MySQL CREATE USER语句在数据库服务器中创建新用户。

MySQL CREATE USER语法

CREATE USER语句在数据库服务器中创建一个新用户。

这是CREATE USER语句的基本语法:

CREATE USER [IF NOT EXISTS] account_name
IDENTIFIED BY 'password';

使用以下语法:

首先,在CREATE USER关键字之后指定帐户名称。
帐户名分为两部分:用户名和主机名,用@符号分隔:

username@hostname

用户名是用户名。
hostname是用户连接到MySQL Server的主机的名称。

帐户名的主机名部分是可选的。
如果您省略它,则用户可以从任何主机进行连接。

没有主机名的帐户名等效于:

username@%

如果用户名和主机名包含特殊字符,例如空格或-,则需要分别引用用户名和主机名,如下所示:

'username'@'hostname'

除了单引号('),还可以使用反引号(`)或双引号(")。

其次,在IDENTIFIED BY关键字之后指定用户的密码。

IF NOT EXISTS选项只有在不存在时才有条件地创建一个新用户。

请注意,CREATE USER语句创建一个没有任何特权的新用户。
要授予用户特权,请使用GRANT语句。

MySQL CREATE USER示例

首先,使用mysql客户端工具连接到MySQL Server:

mysql -u root -p

输入root帐户的密码,然后按Enter:

Enter password: ********

其次,显示当前MySQL Server中的用户:

mysql> select user from mysql.user;

这是输出:

+------------------+
| user             |
+------------------+
| mysql.infoschema |
| mysql.saession   |
| mysql.sys        |
| root             |
+------------------+

第三,创建一个名为bob的新用户:

mysql> create user bob@localhost identified by 'Secure1pass!';

第四,再次显示所有用户:

mysql> select user from mysql.user;

输出将是:

+------------------+
| user             |
+------------------+
| bob              |
| mysql.infoschema |
| mysql.session    |
| mysql.sys        |
| root             |
+------------------+
5 rows in set (0.00 sec)

用户bob已成功创建。

第五,打开第二个会话并以bob身份登录MySQL:

mysql -u bob -p

输入bob的密码,然后按Enter:

Enter password: ********

第六,显示bob有权访问的数据库:

mysql> show databases;

这是bob可以访问的数据库列表:

+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.01 sec)

第七,转到用户root的会话,并创建一个名为bobdb的新数据库:

mysql> create database bobdb;

八,选择数据库bobdb:

mysql> use bobdb;

第九,创建一个名为列表的新表:

mysql> create table lists(
-> id int auto_increment primary key,
-> todo varchar(100) not null,
-> completed bool default false);

请注意,当您按Enter键时,mysql工具将显示->接受语句的新子句,而不是显示mysql>命令。

第十,将bobdb的所有特权授予bob:

mysql> grant all privileges on bobdb.* to bob@localhost;

请注意,您将在GRANT教程中学习如何向用户授予特权。

第十一,转到bob的会话并显示数据库:

mysql> show databases;

现在,bob可以看到bobdb了:

+--------------------+
| Database           |
+--------------------+
| bobdb              |
| information_schema |
+--------------------+
2 rows in set (0.00 sec)

第十二,选择数据库bobdb:

mysql> use bobdb;

第十三,显示来自bobdb数据库的表:

mysql> show tables;

用户鲍勃可以看到列表表:

+-----------------+
| Tables_in_bobdb |
+-----------------+
| lists           |
+-----------------+
1 row in set (0.00 sec)

第十四,在列表表中插入一行:

mysql> insert into lists(todo) values('Learn MySQL');

第十五,从列表表中查询数据:

mysql> select * from lists;

这是输出:

+----+-------------+-----------+
| id | todo        | completed |
+----+-------------+-----------+
|  1 | Learn MySQL |         0 |
+----+-------------+-----------+
1 row in set (0.00 sec)

因此,用户bob可以执行bobdb数据库中的所有操作。

最后,从两个会话断开与MySQL Server的连接:

mysql> exit

在本教程中,您学习了如何使用MySQL CREATE USER在数据库服务器中创建新用户。