MySQL创建用户有3种方法,一种是通过INSERT向用户用户表user插入一条记录,第二种是通过CREATE USER语句创建,第三种是 GRANT 通过授权时创建。
一、INSERT USER 方法向USER表插入一条记录:
格式:
insert into user (host,user,password) values (’%’,‘wangxiansong’,password(‘123456’));
示例:
mysql> insert into user (host,user,password) values ('localhost','xiaojianbing',password('123456'));
Query OK, 1 row affected, 3 warnings (0.00 sec)
说明:
host 主机名: 可以用主机名和IP地址,也可以用通配符, 通配符说明: 192.168.0.%(IP地址为192.168.0段的所有IP地址都可以访问)
二、 CREATE USER 方法:
说明:
host="localhost"为本地登录用户
host="ip"为ip地址登录
host="%",为外网ip登录
格式:
CREATE USER 'username'@'host' [IDENTIFIED BY 'PASSWORD'];
说明:
其中密码是可选项。该方法创建出来的用户只有连接数据库的权限,需要后续继续授权。
格式:
CREATE USER 'root'@'192.168.189.71' IDENTIFIED BY "123456";
CREATE USER 'root'@'192.168.189.%' IDENTIFIED BY "123456";
CREATE USER 'root'@' %' ;
示例:
mysql> create user 'test'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> create user 'ruanqiulin'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> create user 'xiansong'@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> create user 'liscao'@'%';
Query OK, 0 rows affected (0.00 sec)
指定创建用户账号,格式为 'user_name'@'host_name'。这里user_name是用户名,host_name为主机名,即用户连接 MySQL 时所在主机的名字。若在创建的过程中,只给出了账户的用户名,
而没指定主机名,则主机名默认为“%”,表示一组主机。
mysql> create user 'wangxiansong' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
三、GRANT命令创建用户
当数据库存在用户的时候GRANT会对用户进行授权,但当数据库不存在该用户的时候,就会创建相应的用户并进行授权。
格式:
grant privileges on databasename.tablename to 'username'@'host' IDENTIFIED BY 'PASSWORD';
示例:
mysql> GRANT SELECT, INSERT ON mysql.user TO 'pig'@'%';
Query OK, 0 rows affected (0.03 sec)