mysql01-mysql基础知识

1 mysql的安装:分为单实例和多实例

2 mysql的权限

  常见的删库跑路是因为权限问题导致的,若是只赋予该账号一个某些权限,就可以避免;

  grant SELECT on mall.* TO 'dev'@'192.168.244.%' IDENTIFIED BY '123' WITH GRANT OPTION;
 
  再看一下权限是否赋予成功
  
  show grants for 'dev'@'192.168.244.%'
  
3 mysql的用户标识
  用户+ip
4 用户权限涉及到的表  
  mysql.user 一行数据代表一个用户,常见操作直接修改该表修改用户权限是不合法的
  mysql.db 一行数据代表对数据库的权限
  mysql.table_priv一行数据代表对表的权限
  column_priv 一行记录代表对某一列的权限
 
5 mysql 权限颗粒可以作用到某一列
  比如下面这张表,对于dev用户之允许看id,name字段
  grant select(id,name) on mall.account to 'dev'@'192.168.244.%';

 

 
插入数据后数据表如下

 

 

 需求是:只允许dev用户查询id,name列

grant select(id,name) on mall.account to 'dev'@'192.168.244.%';
此时查一下啊对应的表权限,列权限

此时进行查询语句,分别是 select * 和 select id,name(授权字段) 看结果

 

 

 

 

  回收权限:REVOKE SELECT on mall.* from 'dev'@'192.168.244.%'

 6 mysql 角色的具体操作

  mysql 是基于 用户+ip 的授权模式;
     
  开启mysql的角色模式
 
  

 然后创建一个角色dev_role,在创建要给角色peer ,吧 peer 加入到 dev_role中,就实现了分组的概念,给dev_role查询权限,

create USER 'dev_role'
create USER 'deer'
grant proxy on 'dev_role' to 'deer'
grant select(id,name) on mall.account to 'dev_role'
这里有个小的地方需要注意:如果你是远程链接,你可能会收获一个大大的错误,你没有权
限做这一步,这个时候你需要再服务器上执行一条
GRANT PROXY ON ''@'' TO 'root'@'%' WITH GRANT OPTION;
测试一下,现在使用'deer'用户登陆系统试试
select id ,name from mall.account
 
这些角色权限存储在哪里?
 

 

 

 

6mysql的数据类型

int

 

有无符号的

演示 bigint
create table test_unsigned(a int unsigned, b int unsigned);
insert into test_unsigned values(1, 2);
select b - a from test_unsigned;
select a - b from test_unsigned; --运行出错
无符号不可以小于0
 
int(n)
create table test_int_n(a int(4) zerofill);
insert into test_int_n values(1);
insert into test_int_n values(123456);
int(N)中的 N 是显示宽度, 不表示 存储的数字的 长度 的上限。
 zerofill 表示当存储的数字 长度 < N 时,用 数字 0 填充左边,直至补满长度 N
当存储数字的长度 超过 N 时 ,按照 实际存储 的数字显示
 
create table test_auto_increment(a int auto_increment);//报错 提示必须是一个主键列才可以自动增长
create table test_auto_increment(a int auto_increment primary key);

 面试题答案

insert into test_auto_increment values(NULL);//1,在当前数字基础上加1
insert into test_auto_increment values(0);//2 ,在当前数字上加1
insert into test_auto_increment values(-1);//-1 可以直接插入
insert into test_auto_increment values(null),(100),(null),(10),(null)//2 100 101 10 102

字符类型

 

 

 

 时间类型

 

 

posted @ 2020-11-26 08:17  小傻孩丶儿  阅读(84)  评论(0编辑  收藏  举报