如何使用MySQL CREATE USER语句创建用户帐户
简介:在本教程中,您将学习如何使用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在数据库服务器中创建新用户。