摘要:在本教程中,您将学习如何使用 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
关键字后指定帐户名。帐户名由两部分组成: username
和hostname
,用@
符号分隔:
username@hostname
Code language: SQL (Structured Query Language) (sql)
username
是用户的名字。 hostname
是用户连接 MySQL 服务器的主机名。
帐户名的hostname
部分是可选的。如果省略它,用户可以从任何主机进行连接。
没有主机名的帐户名相当于:
username@%
Code language: SQL (Structured Query Language) (sql)
如果username
和hostname
包含空格或-
等特殊字符,则需要分别引用用户名和主机名,如下所示:
'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> exit
Code language: SQL (Structured Query Language) (sql)
在本教程中,您学习了如何使用 MySQL CREATE USER
在数据库服务器中创建新用户。