MYSQL 5.6
1.创建用户
1.1 格式:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%,%匹配所有主机,该地方设置成‘localhost’,代表只能本地访问。
1.2 例子:
允许本地 IP 访问
create user 'test'@'localhost' identified by '123456';
create user 'test'@'127.0.0.1' identified by '123456';
两种方式均可
允许外网 IP 访问
create user 'test'@'%' identified by '123456';
允许外网指定 IP 访问
create user 'test'@'1.1.1.1' identified by '123456';
指定外网IP1.1.1.1下的用户可以连接该数据库
2.创建数据库
2.1 格式:create database databasename DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
databasename:数据库名
注意此处的字符集为utf8mb4,排序规则为utf8mb4_general_ci
3.给用户授权
3.1 格式:GRANT privileges ON databasename.tablename TO 'username'@'host';
privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
databasename:数据库名
tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*
给用户授权的前提,必须该用户已存在。'test'@'host'中test为用户名,host为主机地址。
TIPS:
| host | scope | description |
|---|---|---|
| localhost | 本机 | localhost不会被解析成IP地址,直接通过UNIXsocket连接 |
| 127.0.0.1 | 本机 | 会通过TCP/IP协议连接,并且只能在本机访问 |
| ::1 | 本机 | ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1 |
| 1.1.1.1 | 指定IP地址 | 该IP地址内网外网均可 |
| % | 所有IP地址 | 所有IP地址均可访问 |
3.2 例子:
授予用户通过外网IP对于该数据库的全部权限
grant all privileges on 'testdb'.* to 'test'@'%'';
授予用户在本地服务器对该数据库的全部权限
grant all privileges on 'testdb'.* to 'test'@'localhost';
用户test无法从internet上直接访问数据库,只能在MYSQL主机上来访问。
3.3 刷新权限:
使用以下语句刷新授权,修改立即生效
flush privileges;
4.撤销用户权限
4.1 格式:REVOKE privilege ON databasename.tablename FROM 'username'@'host';
4.2 例子:
REVOKE SELECT ON *.* FROM 'test'@'%';
5.修改用户密码
5.1 格式:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
5.2 例子:
SET PASSWORD FOR 'test'@'%' = PASSWORD("123456");