目录
三、MySQL四个常用表(user,db,tables_priv,columns_priv)
一、MySQL简介
1.why
数据在内存中容易丢失
数据在文件中,不便于操作
2. what
使用完整的管理系统统一管理,易于查询
3.where
凡是需要持久化存储数据的地方
术语
4.DB
数据库(database):存储数据的“仓库”。它保存了一系列有组织的数据。
5.DBMS
数据库管理系统(Database Management System)。数据库是通过DBMS创建和操作的容器6. SQL
结构化查询语言(Structure Query Language):专门用来与数据库通信的语言
二、MySQL安装
请参考我的博客J2EE基础01:https://blog.csdn.net/qq_54936371/article/details/118977309?spm=1001.2014.3001.5502
三、MySQL四个常用表(user,db,tables_priv,columns_priv)
1.user(用户权限表)
首先登陆的时候验证Host,User,Password也就是ip,用户名,密码是否匹配,匹配登陆成功将会为登陆者分配权限,分配权限的顺序也是按照上面四张表的排列顺序进行的,举个例子,如果user表的Select_priv为Y说明他拥有所有表的查找权限,如果为N就需要到下一级db表中进行权限分配了。其中的%是通配符,代表任意的意思。
代码:
SELECT * FROM user
🤳 Y是有权限 N是没有权限 其中的%是通配符,代表任意的意思
2.db(数据库层权限)
来到db表之后会匹配Host,User然后会根据Db字段对应的表进行权限分配
Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv分别代表着查询,增加,更新,删除,创建,销毁。
代码:
select * from db
🤳其中Y代表这拥有此项权限,N则代表没有此项权限。
3.tables_priv(表层权限)
与上面一样,这是通过Host,Db,User,Table来进行定位到表层的一个权限分配。
代码:
select * from tables_priv
🤳Table_priv和Column_priv两个字段来记录权限。
4.columns_priv(字段权限)
顾名思义,字段层权限,通过Host,Db,User,Table,Column来进行定位到字段层的一个权限分配。
代码:
select * from columns_priv
🤳 只有Column_priv来记录权限。
四、账号管理及权限(mysql8)
1.创建用户
MySQL8版本用户名和密码创建需分开
代码:
create user (用户名)
2.设置,修改密码
代码:
ALTER user (用户名) IDENTIFIED with mysql_native_password by '(要设置的密码)'
3.查看用户信息
host:主机
user:账户名
authentication_string:密码
代码 :
Select host,user,authentication_string from user
4.删除用户
代码:
drop user (用户名)
5.刷新配置
代码:
FLUSH PRIVILEGES;
6.设置权限(grant)和 撤销权限(Revoke)
1) privileges: 用户的操作权限,如SELECT,INSERT,UPDATE,DELETE等,如果要授予所有权限直接使用:all;
2) databasename:数据库名;
3) tablename: 表名,如果要授予用户对所有数据库和表的操作权限直接使用:*.*;
①设置权限
代码:
grant privileges on databasename.tablename to username@'host';
#给用户xhy 赋予 数据库xhy中的表t_mvc_book 查询\增加\删除\修改权限
grant SELECT\insert\delete\update on xhy.t_mvc_book to xhy@'%';
#给 用户xhy 赋予 数据库xhy中所有表 查询权限
grant SELECT on xhy.* to xhy@'%';
#给用户 赋予 数据库中所有表 所有权限
grant ALL on xhy.* to xhy@'%';
② 撤销权限
代码:
revoke privileges on databasename.tablename from username@'host';
#撤销所有权限
REVOKE ALL on xhy.* FROM xhy@'%';
7.查看用户的权限
代码:
show grants for 用户名
SHOW GRANTS for 'xhy'@'%';
五、数据库创建
1.默认数据库介绍
1)information_schema:是一个信息数据库,它保存着关于MySQL服务器所维护的所有其他数据库的信息;
2)mysql:核心数据库,类似于sql server中的master表,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息;
3)test:测试数据库,没有东西;
2.数据库创建
①手动:
注:MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。
utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。
②代码:
create database (数据库名)
设置字符集和排列规则:
create database if not exists 数据库名 default charset utf8mb4 collate utf8mb4_general_ci;(包含字符集编码)
3.查看所有数据库
show databases
4.删除数据库
drop database (数据库名)
六、四大引擎
1.InooDB:
(1)InnoDB数据库引擎是早就Mysql灵活性的技术的直接产品,这项技术就是mysql+api,在使用mysql的时候,你所面对的每一个挑战几乎都
(2)源于isam和myisam数据库引擎,支持事务处理也支持外来键。
2.MyISAM:
(1)MyISAM是MySQL的ISAM扩展格式。
(2)MYISAM强调了快速读取操作,所以具有快速查询功能。
3.MEMORY
MEMORY存储引擎将表中的数据存储到内存中,未查询和引用其他表数据提供快速访问。
4.Archive
今天的学习到此为止了~(配上我最喜欢的紫色)下期再见🙌