一:MySqL简介和配置
why
数据在内存中容易丢失。 数据在文件中,不便于操作
what
使用完整的管理系统统一管理,易于查询
where
凡是需要持久化存储数据的地方
专业术语
DB
数据库(database):存储数据的“仓库”。它保存了一系列有组织的数据。
DBMS
数据库管理系统(Database Management System)。数据库是通过DBMS创建和操作的容器
SQL
结构化查询语言(Structure Query Language):专门用来与数据库通信的语言
MySQL 8.0版本的安装方式
1.解压MySQL
2.修改my.ini文件
3.mysqld install
4.mysqld --initialize --console
5.net start mysql
6.mysql -P 3306 -u root -p
7.ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
8.Navicat链接测试
如果MySQL已经安装过,那么执行mysqld remove
二、MySQL四个常用表(user,db,tables_priv,columns_priv)
1、user表(用户层权限)
首先登陆的时候验证Host,User,Password也就是ip,用户名,密码是否匹配,匹配登陆成功将会为登陆者分配权限,分配权限的顺序也是按照上面四张表的排列顺序进行的,举个例子,如果user表的Select_priv为Y说明他拥有所有表的查找权限,如果为N就需要到下一级db表中进行权限分配了。其中的%是通配符,代表任意的意思。
2、db表(数据库层权限)
来到db表之后会匹配Host,User然后会根据Db字段对应的表进行权限分配,像Select_priv这些字段对应的权限大家应该都能看出来是对应着什么权限了吧,这里不细说了(不偷懒,举个例子Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv分别代表着查询,增加,更新,删除,创建,销毁)。其中Y代表这拥有此项权限,N则代表没有此项权限。
3、tables_priv表(表层权限)
这是通过Host,Db,User,Table来进行定位到表层的一个权限分配。不过它只有Table_priv和Column_priv两个字段来记录权限。
4、columns_priv表(字段层权限)
顾名思义,字段层权限,通过Host,Db,User,Table,Column来进行定位到字段层的一个权限分配,只有Column_priv来记录权限。
三.grant权限分配(MySQL 8.0)
1.创建用户
用户名密码创建需要分开
命令:create user 用户名;
2. 查看用户信息
select host,user,authentication_string from user;
3.删除用户(慎用)
drop user 用户名;
4.修改用户密码
ALTER USER 用户 IDENTIFIED WITH mysql_native_password BY '密码';
5.刷新配置
flush privileges;
6. 设置权限(grant)
语法:grant privileges on databasename.tablename to username@'host';
查询权限
grant SELECT on temp.t_mvc_book to my@'%';
删除权限
grant DELETE on temp.t_mvc_book to my@'%';
增加权限
grant INSERT on temp.t_mvc_book to my@'%';
一次性赋予某一张表的所有权限
grant all on temp.t_mvc_book to my@'%';
一次性赋予某一个数据库的所有表权限
grant all on temp.* to my@'%';
撤销权限(Revoke)
语法:revoke privileges on databasename.tablename from username@'host';
revoke all on temp.t_mvc_book from my@'%';
查看给xm用户赋予权限的sql
show grants for 'my'@'%';
创建数据库
create database 数据库名;
create database if not exists 数据库名 default charset utf8 collate utf8_general_ci;
默认的数据库编码集:utf8(即UTF-8),collate表示排序规则为utf8_general_ci
查看所有数据库
show databases;
删除数据库(慎用)
drop database 数据库名;
四:四大引擎
InnoDB存储引擎,MyISAM存储引擎,MEMORY存储引擎,Archive 存储引擎