DDL:CTEATE DROP ALTER
dml:对数据进行管理
update insert into delete truncate
dpl:查询语句 select
dcl:权限控制语句 grant revoke
创建用户
create user 'xiaobu'@'localhost' identified by '123456';
create user 这是创建用户的开头
'xiaobu'@'localhost'
xiaobu 表示的是用户名
localhost :新建的用户可以在那些主机上登录,即可以使用IP地址,网段主机名都可以
例如:
'xiaobu'@'20.0.0.20'
'xiaobu'@'20.0.0.%'
identified by '123456' 新建用户的密码
加密创建用
select password('abc123')先生成加密的密码
create user 'xiaobu2'@'localhost' identified by '生成加密的密码';
给创建的用户权限
grant all privileges on * .* to 'xiaobu'@'localhost' identified by '123456';
grant 赋权的开头语句
all privileges 赋予所有权限
on * .* 所有库
on xiaokai.* 只能对指定的库进行操作
to 'xiaobu'@'localhost' 赋权给那个用户
identified by '123456'; 使用那个密码登录,创建用户的时候不写,密码为空
查看用户的权限的命令
show grants for 'xiaobu'@'localhost';
刷新权限 flush privileges (赋权之后要刷新权限)
删除用户的权限
revoke all privileges on xiaobu. * from 'test1'@'20.0.0.50';
如何对权限进行控制
grant select on xiaobu.* to 'test1'@'20.0.0.50' identified by '123456';
删除权限
revoke select on xiaobu.* from 'test1'@'20.0.0.50' ;
如何给一个用户赋予多个权限
grant select,insert,drop on xiaobu.* to 'test1'@'20.0.0.50' identified by '123456';
revoke insert,drop on xiaobu.* from 'test1'@'20.0.0.50';
用户重命名
rename user 'test1'@'20.0.0.50' to 'xiao'@'20.0.0.50'
删除用户
drop user 'test1'@'20.0.0.50';
修改密码
修改当前登录用户的密码
set password = password('abc123')(要在终端里面改)
修改其他用户密码
set password for 'test1'@'20.0.0.50' = password('abc123')
恢复root密码
vim /etc/my.cnf
添加免密登录
skip-grant-tables
重启mysql服务
systemctl restart mysqld
重写进入mysql不用输入密码直接进入
use mysql;
show user;
select * from user;
select user,authentication_string,host from user;
updates mysql.user set
重置root密码
update mysql.user set authentication_string = '123456' where user = 'root';
修改密码之后需要加密。慎用。
update user set authentication_string=password('123456') where Host='localhost' and User='root';
加密密码
update user set authentication_string = password('123456') where host='%'
练习题
1、创建用户,声明网段 test 网段任意 123456
create user 'test'@'20.0.0.%' identified by '123456';
2、创建一个库,库名:test1
create database test1;
3、在库里创建两个表
table1
id 主键
name 不能为空
sex 不能为空
create table table1 (
id int(4) primary key,
name char(4) not null,
sex char(2) not null
);
table2
id 主键
address 可以为空,默认地址不详
phone 可以为空 不能重复
create table table2 (
id int(4) primary key,
address varchar(12) default '不详',
phone char(11) unique
);
3、 test 可以对test1 的库进行 查和增
grant select,insert on test1.* to 'test'@'20.0.0.%' identified by '123456';
show grants for 'test'@'20.0.0.%';
4、 把test的用户名改成test_123
rename user 'test'@'20.0.0.%' to 'test_123'@'20.0.0.%';
5、 把密码修改 abc123
set password for 'test_123'@'20.0.0.%'=password('abc123');
6、 删除权限:删除增权限
revoke insert on test1.* from 'test_123'@'20.0.0.%';
接下章
table1的索引是hash类型 sex列做索引
show index from table1;
alter table table1 engine=memory;
create index idx_hash_column on table1 (sex) using hash;
table2的索引是Btree phone做索引
show index from table2;
create index phone_index on table2 (phone);