How To Create User Accounts Using MySQL CREATE USER Statement

MySQL Create User

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

MySQL CREATE USER语法

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

以下是CREATE USER语句的基本语法:

CREATE USER [IF NOT EXISTS] account_name
IDENTIFIED BY 'password';
Code language: SQL (Structured Query Language) (sql)

在这个语法中:

首先,在CREATE USER关键字后指定帐户名。帐户名由两部分组成: usernamehostname ,用@符号分隔:

username@hostname
Code language: SQL (Structured Query Language) (sql)

username是用户的名字。 hostname是用户连接 MySQL 服务器的主机名。

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

没有主机名的帐户名相当于:

username@%
Code language: SQL (Structured Query Language) (sql)

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

'username'@'hostname'
Code language: SQL (Structured Query Language) (sql)

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

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

仅当新用户不存在时, IF NOT EXISTS选项才会有条件地创建新用户。

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

MySQL CREATE USER示例

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

mysql -u root -p
Code language: SQL (Structured Query Language) (sql)

输入root帐户的密码并按Enter

Enter password: ********
Code language: SQL (Structured Query Language) (sql)

其次,显示当前 MySQL 服务器的用户:

mysql> select user from mysql.user;    
Code language: SQL (Structured Query Language) (sql)

这是输出:

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

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

mysql> create user bob@localhost identified by 'Secure1pass!';
Code language: SQL (Structured Query Language) (sql)

四、再次显示所有用户:

mysql> select user from mysql.user;        
Code language: SQL (Structured Query Language) (sql)

输出将是:

+------------------+
| user             |
+------------------+
| bob              |
| mysql.infoschema |
| mysql.session    |
| mysql.sys        |
| root             |
+------------------+
5 rows in set (0.00 sec)Code language: JavaScript (javascript)

用户bob已创建成功。

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

mysql -u bob -p
Code language: SQL (Structured Query Language) (sql)

输入bob的密码并按Enter

Enter password: ********
Code language: SQL (Structured Query Language) (sql)

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

mysql> show databases;
Code language: SQL (Structured Query Language) (sql)

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

+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.01 sec)Code language: JavaScript (javascript)

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

mysql> create database bobdb;
Code language: SQL (Structured Query Language) (sql)

八、选择数据库bobdb

mysql> use bobdb;
Code language: SQL (Structured Query Language) (sql)

第九,创建一个名为lists新表

mysql> create table lists(
-> id int auto_increment primary key,
-> todo varchar(100) not null,
-> completed bool default false);
Code language: SQL (Structured Query Language) (sql)

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

第十,将bobdb上的所有权限授予bob

mysql> grant all privileges on bobdb.* to bob@localhost;
Code language: SQL (Structured Query Language) (sql)

请注意,您将在GRANT教程中了解如何向用户授予权限。

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

mysql> show databases;
Code language: SQL (Structured Query Language) (sql)

现在, bob可以看到bobdb

+--------------------+
| Database           |
+--------------------+
| bobdb              |
| information_schema |
+--------------------+
2 rows in set (0.00 sec)Code language: JavaScript (javascript)

第十二、选择数据库bobdb

mysql> use bobdb;
Code language: SQL (Structured Query Language) (sql)

第十三,显示bobdb数据库中的

mysql> show tables;
Code language: SQL (Structured Query Language) (sql)

用户bob可以看到lists

+-----------------+
| Tables_in_bobdb |
+-----------------+
| lists           |
+-----------------+
1 row in set (0.00 sec)Code language: JavaScript (javascript)

第十四,向lists插入一行

mysql> insert into lists(todo) values('Learn MySQL');
Code language: SQL (Structured Query Language) (sql)

十五、从lists表中查询数据

mysql> select * from lists;
Code language: SQL (Structured Query Language) (sql)

这是输出:

+----+-------------+-----------+
| id | todo        | completed |
+----+-------------+-----------+
|  1 | Learn MySQL |         0 |
+----+-------------+-----------+
1 row in set (0.00 sec)    Code language: JavaScript (javascript)

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

最后,从两个会话中断开与 MySQL 服务器的连接:

mysql> exitCode language: SQL (Structured Query Language) (sql)

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

本教程有帮助吗?