如果对你有帮助,可以给卑微的博主留个赞、关注、收藏 (不是)
(骗一下数据,说不定以后面试就过了,拜谢)
数据库选用mysql 8.0.25 64位, 配合使用navicat
mysql可以在主页下载安装包,或者网上自己搜索
数据库安装配置可以参考网上的教程,有很多人都做了教程,例如这篇博文Mysql8.0.17压缩包安装——超详细简单教程_singular港的博客-CSDN博客
navicat的安装可参考这篇博文
Navicat16安装教程-图文详解_victor_王泽华的博客-CSDN博客
目录
1. 新建数据库 (模式)
2. 基本表的创建
3. 视图的创建
4. 完整性的创建
5. 触发器创建
6. 存储过程的创建
7. 索引创建
8. 数据库权限管理
9. 备份与恢复策略
安装好navicat和mysql后
先启动mysql服务,然后使用navicat进行连接,连接成功后点击新建查询
1. 新建数据库 (模式)
例如创建数据库名字叫library_db ,之后我们新建的表、存储过程等内容都属于这个数据库(模式)
create database library_db;use library_db;
2. 基本表的创建
3. 视图的创建
4. 完整性的创建
(主键、外键、check、非空、唯一、用户定义完整性、自增)
5. 触发器创建
6. 存储过程的创建
7. 索引创建
mysql创建表时默认引擎InnoDB,如果表有主键,会建立主键聚集索引,如果一个字段有unique约束,会建立unique索引,如果一个字段有外键约束,会建立外键索引。在此基础上我们只多建立一个索引,books表的book_name字段建立非聚集索引。
create index book_name_index on books(book_name);
给books表的book_name创建非聚集索引,其他索引由数据库引擎创建
完成后各表上的索引如下
各字段解析如下
8. 数据库权限管理
使用严格的权限管理,只有允许的操作才能进行;有三类用户使用数据库,创建reader,manager,sys_manager。每个用户只授权某些函数的执行,不允许修改,也不允许权限传递,更不能直接接触到表,这样保证数据库的安全性和独立性(只通过函数接口访问)。
除了这三个用户外,实现时还使用一个checker用户,这个用户负责在我们没有登录成功前,连接数据库进行用户检查,检查通过后,建立用户连接进行数据库操作(reader/manager/sys_manager), 同时checker连接释放,另外读者用户注册也需要checker帮助传递读者信息到数据库完成注册,manager的注册有sys_manager负责验证。
各用户授予权限如下
(关于创建用户和授权可以参考以下代码
CREATE USER 'checker'@'localhost' IDENTIFIED BY 'checkerpassword';#其他类似
...................
grant execute on procedure library_db.insert_opinion to 'reader'@'localhost';
........................)
(也可以使用navicat图形化的方式创建,百度一下)
9. 备份与恢复策略(可不做,但是做了的话比较完善)
采取海量+增量的方式备份数据。 每周进行一次海量备份,两次海量备份之间采用增量备份方式。由于mysql不直接提供增量备份方式,故采用日志记录的方式来实现增量备份。
备份流程如下:
1.在配置文件开启二进制日志功能,设置日志地址(根据),服务id 如图
注:backup 文件夹需要自己创建、mysql-bin是日志文件的命名方式,不用创建,结合下图看看
2.先进行海量备份如
mysqldump -u root -p -R library_db> C:\Users\Administrator\Desktop\library_db.sql
或者使用navicat图形化进行备份
3.之后mysql会记录执行日志,保存到我们指定的地址,命名是mysql-bin.00000x 这样我们就可以通过海量备份加日志的方式恢复数据。(从mysql-bin.000001开始计数)
示例恢复如下:
1.先恢复海量备份
mysql -u root -p < C:\Users\Administrator\Desktop\library_db.sql
2.再利用日志逐个循环恢复增量备份 (到日志目录文件夹下执行恢复命令)
mysqlbinlog --no-defaults mysql-bin.000001 | mysql -uroot -p+密码
(如mysqlbinlog --no-defaults mysql-bin.000001 | mysql -uroot -p123456)
mysqlbinlog --no-defaults mysql-bin.000002| mysql -uroot -p+密码
.........
实际运行时备份方式采用navicat创建一个批处理作业,指定执行全量备份,然后重置日志,(从000001开始计数),执行时间为每周日凌晨2点 ,设置如下图
注:每次进行恢复后,需要重新对存储过程进行授权
至此数据库实现完成。