03、MySQL安全管理和特性解析(DBA运维专用)
03、MySQL安全管理和特性解析
本节主要讲MySQL的安全管理、角色使用、特定场景下的数据库对象、各版本特性以及存储引擎
目录
03、MySQL安全管理和特性解析
1、 用户和权限管理
2、 MySQL角色管理
3、 MySQL密码管理
4、 用户资源限制
5、 忘记root密码处理办法
6、 SQL MODE详解
7、 视图、存储过程、触发器的使用
8、 MySQL5.5、5.6、5.7、8.0各个版本的特性
5.5特性
MySQL 5.6的特性
MySQL 5.7的特性
MySQL 8.0 新特性
2、MySQL加列三种算法是什么?区别是什么?
COPY 算法
INPLACE 算法
INSTANT 算法
3、假如入你是DBA,一个新业务研发考虑使用5.6,请你说服他们使用 MySQL8.0
9、 MySQL各个存储引擎介绍
1、InnoDB存储引擎和MyISAM存储引擎区别和适用场景?
2、TokuDB有哪些应用场景?
3、适用MEMORY存储引擎要注意哪些问题?
4、CSV存储引整有哪些适用场景?
5.为什么从MySQL5.5开始,MySQL默认的存储引擎改成了InnoDB?
6.假如你管理的业务线,有多张MyISAM表,你会怎么处理?
1、 用户和权限管理
创建/删除用户
某个同事要申请一个haohao库的远程只读用户,他的IP是192.168.1.3 可移执行: CREATE USER 'haohao_r'@'192.168.1.3' IDENTIFIED BY 'password'; 如果是客户端多个网段可移植执行: CREATE USER 'haohao_r'@'192.168.1.%' IDENTIFIED BY 'password'; 查用户 select user,host from mysql.user; 删除用户 DROP USER 'haohao'@'192.168.1.%';
用户授权
GRANT insert,delete,select,update ON haohao.* TO 'haohao'@'localhost'; 如果要给力某列授权就执行: CREATE USER haohao_r_1@localhost IDENTIFIED BY 'password'; grant select(id,name) on haohao.grant_test to haohao_r_1@localhost;
查用户权限
show grants for haohao_r_1@localhost;
回收权限
REVOKE INSERT ON haohao.* FROM 'haohao'@'localhost';
2、 MySQL角色管理
创建角色
CREATE ROLE 'app_developer'; 给角色授权 GRANT select,update,delete,insert ON app_db.* TO 'app_developer';使用角色,受先创建一个用户: create user 'haohao_role'@'localhost' identified by 'IHB87Edsa'; 然后给用户富余角色,用来替换GRANT SELECT,UPDATE,DELETE,INSERT: grant 'app_developer' to 'haohao_role'@'localhost';用户撤销角色 revoke app_developer from 'haohao_role'@'localhost'; 删除角色 drop role app_developer;
3、 MySQL密码管理
修改root密码
ALTER USER user() IDENTIFIED BY 'xxx';
修改普通用户密码
alter user 'haohao'@'localhost' identified by 'xxx'; ALTER USER 'test_user'@'localhost' IDENTIFIED BY 'NewPassword123!';
查看密码相关参数:
show global variables like 'validate_password%';
4、 用户资源限制
创建时限制资源
CREATE USER 'haohao_02'@'localhost' identified by 'Udapadg999a^' WITH MAX_QUERIES_PER_HOUR 500 MAX_UPDATES_PER_HOUR 100 MAX_CONNECTIONS_PER_HOUR 50 MAX_USER_CONNECTIONS 50;
修改现有用户的资源限制
ALTER USER 'haohao'@'localhost' WITH MAX_QUERIES_PER_HOUR 100; 如果要曲线限制,就把值设置成0 ALTER USER 'haohao'@'localhost' WITH MAX_QUERIES_PER_HOUR 0;
重置资源使用计数
FLUSH USER_RESOURCES; 或者 FLUSH PRIVILEGES
5、 忘记root密码处理办法
编辑配置文件
vim /data/mysql/conf/my.cnf 增加 skip-grant-tables 重启mysql /etc/init.d/mysql.server restart
免密方式登录
mysql -uroot -p 执行修改密码报错 alter user user() identified by 'dup81Gcda2'; 直接修改用户表,把root密码设置为空: update mysql.user set authentication_string = '' where user = 'root' and host='localhost'; 再重启然后用空密码登录 最后修改密码 alter user user() identified by 'dup81Gcda2';
6、 SQL MODE详解
-
SQL 模式(SQL Mode)是 MySQL 数据库中的一个配置选项,它用于定义 MySQL 应该如何处理 SQL 语句中的语法、数据验证和其他相关操作。可以把它看作是一组规则,这些规则决定了 MySQL 对不同类型的 SQL 语句和数据的行为方式。
查询全局的sql_mode
select @@global.sql_mode; 查看当前会话的 select @@session.sql_mode; 在配置文件中加入 sql-mode="xxx"
MySQL在运行时,如果要修改全局的sql_mode,执行:
SET GLOBAL sql_mode = 'modes';
修改当前会话执行
SET SESSION sql_mode = 'modes';
在原有基础上增加一种模式
SET SESSION sql_mode = sys.list_add(@@session.sql_mode, 'ONLY_FULL_GROUP_BY');
去掉一种模式
SET SESSION sql_mode = sys.list_drop(@@session.sql_mode, 'ONLY_FULL_GROUP_BY');
清空sql_mode
SET SESSION sql_mode = '';
7、 视图、存储过程、触发器的使用
视图(View)
-
视图是一个虚拟表,它是从一个或多个表(或其他视图)中的数据通过查询语句定义而来的。它本身不存储数据,数据实际存储在基础表中。当对视图进行查询操作时,数据库会根据视图的定义从相关的基础表中获取数据并返回结果。例如,在一个包含 “学生表(students)”、“课程表(courses)” 和 “选课表(course_selection)” 的数据库中,可以定义一个视图来展示学生所选课程的信息,如:
创建 CREATE VIEW student_courses_view AS SELECT s.name, c.course_name, cs.grade FROM st
相关文章:
03、MySQL安全管理和特性解析(DBA运维专用)
03、MySQL安全管理和特性解析 本节主要讲MySQL的安全管理、角色使用、特定场景下的数据库对象、各版本特性以及存储引擎 目录 03、MySQL安全管理和特性解析 1、 用户和权限管理 2、 MySQL角色管理 3、 MySQL密码管理 4、 用户资源限制 5、 忘记root密码处理办法 6、 SQ…...
创建型模式5.单例模式
创建型模式 工厂方法模式(Factory Method Pattern)抽象工厂模式(Abstract Factory Pattern)建造者模式(Builder Pattern)原型模式(Prototype Pattern)单例模式(Singleto…...

用户界面软件02
基于表单的用户界面 在“基于表单的用户界面”里面,用户开始时选中某个业务处理(模块),然后应用程序就使用一系列的表单来引导用户完成整个处理过程。大型机系统上的大部分用户界面都是这样子的。[Cok97]中有更为详细的讨论。 面…...
VTK 鼠标+键盘重构
1、鼠标事件 如果有鼠标事件处理等相应的需求,可以重写该事件。 void OnMouseMove() override; //鼠标移动事件 void OnLeftButtonDown() override;//左键按下事件 void OnLeftButtonUp() override;//左键抬起事件 void OnMiddleButtonDown() override;//滚轮按下事件 …...
go语言处理JSON数据详解
一、结构体与json之间的转换 Go语言处理JSON数据通常涉及到将JSON数据解析成Go结构体,或者将Go结构体序列化为JSON格式。Go提供了内置的encoding/json包来实现这些操作。下面详细介绍如何在Go中处理JSON数据。 1. Go结构体与JSON映射 Go语言的encoding/json包可以将JSON数据…...
基于gin一个还算比较优雅的controller实现
看了两天时间的go,对于go的编码风格还不是很了解,但是了解到go并未有Java那样成体系的编码风格规范,所以自己浅尝试了一下,风格无对错,欢迎交流讨论~ controller层: package …...

PDFMathTranslate: Star13.8k,一款基于AI的PDF文档全文双语翻译PDF文档全文双语翻译,保留格式神器,你应该需要它
嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 PDFMathTranslate是一个开源项目,旨在为用户提供便捷的PDF科学论文翻译解决方案。它不仅能够翻译文本,还能保留公式、图表、目…...

Python编程实例-特征向量与特征值编程实现
特征向量与特征值编程实现 文章目录 特征向量与特征值编程实现1、什么是特征向量2、特征向量背后的直觉3、为什么特征向量很重要?4、如何计算特征向量?4、特征向量Python实现5、可视化特征向量6、总结线性代数是许多高级数学概念的基石,广泛应用于数据科学、机器学习、计算机…...
Vue3-跨层组件通信Provide/Inject机制详解
Vue 3 中的 Provide 和 Inject 机制是专为跨层级传递数据而设计的,适用于祖先组件和后代组件之间的通信。与props 和 emits 不同,Provide/Inject 可以跨越多个层级进行数据传递,而不需要逐层传递。 1. Provide provide 是一个在祖先组件中提…...
Linux Jar包定时重启脚本,按最新时间的Jar包启动
Linux Jar包定时重启脚本,按最新时间的Jar包启动 jar包按时间顺序命名如下: park-system-1.1.0-SNAPSHOT_20210101.jar park-system-1.1.0-SNAPSHOT_20210402.jar park-system-1.1.0-SNAPSHOT_20220520.jar 则该脚本默认启动时间最大的一个:park-system-1.1.0-SNAPSHOT_2022…...

HTML5实现好看的博客网站、通用大作业网页模板源码
HTML5实现好看的博客网站、通用大作业网页模板源码 前言一、设计来源1.1 主界面1.2 列表界面1.3 文章界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 HTML5实现好看的博客网站、通用大作业网页模板源码,博客网站源码,HTML模板源码࿰…...

掌握RabbitMQ:全面知识点汇总与实践指南
前言 RabbitMQ 是基于 AMQP 高级消息队列协议的消息队列技术。 特点:它通过发布/订阅模型,实现了服务间的高度解耦。因为消费者不需要确保提供者的存在。 作用:服务间异步通信;顺序消费;定时任务;请求削…...

go如何从入门进阶到高级
针对Go语言的学习,不同阶段应采取不同的学习方式,以达到最佳效果.本文将Go的学习分为入门、实战、进阶三个阶段,下面分别详细介绍 一、社区 Go语言中文网 作为专注于Go语言学习与推广的平台,Go语言中文网为开发者提供了丰富的中…...
在环境冲突情况下调整优先级以解决ROS Catkin构建中缺少模块的问题【ubuntu20.04】
在机器人操作系统(ROS)的开发过程中,构建工作空间时遇到各种依赖性问题是常见的挑战之一。尤其是在多Python环境共存的情况下,环境变量的冲突往往导致诸如缺少empy模块等错误。本文将详细介绍在ROS Noetic与Anaconda Python环境共…...

github 个人主页配置
Guthub 个人主页 (官方称呼是 profile)可以展示很多有用的信息,例如添加一个首页被访问次数的计数器,一个被 Star 与 Commit 的概览信息,以及各种技能标签,设备标签等,还可以利用 wakatime 显示…...
STM32-笔记30-编程实现esp8266联网功能
串口2连接ESP8266模块 复制项目文件34-ESP8266串口间的通信 重命名为35-编程实现ESP8266联网功能 打开项目文件 main.c #include "sys.h" #include "delay.h" #include "led.h" #include "uart1.h" #include "esp8266.h"…...

oscp备考 oscp系列——Kioptix Level 1靶场 古老的 Apache Vuln
目录 前言 1. 主机发现 2. 端口扫描 3. 指纹识别 4. 目录扫描 5. 漏洞搜索和利用 前言 oscp备考,oscp系列——Kioptix Level 1靶场 Kioptix Level 1难度为简单靶场,主要考察 nmap的使用已经是否会看输出,以及是否会通过应用查找对应漏…...

《机器学习》——随机森林
文章目录 什么是随机森林?随机森林的原理随机森林的优缺点优点缺点 随机森林模型API主要参数 实例实例步骤导入数据处理数据,切分数据构建模型训练模型测试数据并输出分类报告和混淆矩阵画出模型的前十重要性的特征 扩展 什么是随机森林? -随…...

指代消解:自然语言处理中的核心任务与技术进展
目录 前言1. 指代消解的基本概念与分类1.1 回指与共指 2. 指代消解的技术方法2.1 端到端指代消解2.2 高阶推理模型2.3 基于BERT的模型 3. 事件共指消解:跨文档的挑战与进展3.1 联合模型3.2 语义嵌入模型(EPASE) 4. 应用场景与前景展望4.1 关键…...
记录一下Unity webgl cannot read properties of undefined reading apply 错误
出现这个问题说明你Build 文件夹的内容和最新的打包内容冲突了 解决方法是把Build文件夹里面的东西全部删了 然后使用Unity重新生成这些文件 后续发现还是有这个问题 然后想了一下本地冲突应该在前端吧本地的文件删了重新拉取服务器的文件才行 以下是解决方法 <script t…...

Redis :String类型
String类型 String是Redis中的字符串,是Redis中最基本的数据类型,直接是按照二进制数据的进行存储 Redis中的所有key都是String类型,但是value是有差别的 常见的命令 set 将String类型的value存储到key中,如果之间有相同的ke…...

从代码学习深度强化学习 - 初探强化学习 PyTorch版
文章目录 前言强化学习的概念强化学习的环境强化学习中的数据强化学习的独特性总结前言 本文将带你初步了解强化学习 (Reinforcement Learning, RL) 的基本概念,并通过 PyTorch 实现一些简单的强化学习算法。强化学习是一种让智能体 (agent) 通过与环境 (environment) 的交互…...

redis分片集群架构
主从集群解决高并发,哨兵解决高可用问题。但是任然有两个问题没有解决:1海量数据存储问题;2高并发写的问题(如果服务中有大量写的请求) 那就可以采用分片集群架构解决这些问题 分片集群特征 分片集群中有多个master…...

手写muduo网络库(一):项目构建和时间戳、日志库
引言 本文作为手写 muduo 网络库系列开篇,聚焦项目基础框架搭建与核心基础工具模块设计。通过解析 CMake 工程结构设计、目录规划原则,结合时间戳与日志系统的架构,为后续网络库开发奠定工程化基础。文中附完整 CMake 配置示例及模块代码。 …...

NLP学习路线图(三十):微调策略
在自然语言处理领域,预训练语言模型(如BERT、GPT、T5)已成为基础设施。但如何让这些“通才”模型蜕变为特定任务的“专家”?微调策略正是关键所在。本文将深入剖析七种核心微调技术及其演进逻辑。 一、基础概念:为什么需要微调? 预训练模型在海量语料上学习了通用语言表…...

hadoop集群datanode启动显示init failed,不能解析hostname
三个datanode集群,有一个总是起不起来。去查看log显示 Initialization failed for Block pool BP-1920852191-192.168.115.154-1749093939738 (Datanode Uuid 89d9df36-1c01-4f22-9905-517fee205a8e) service to node154/192.168.115.154:8020 Datanode denied com…...

51单片机基础部分——矩阵按键检测
前言 上一节,我们说到了独立按键的检测以及使用,但是独立按键每一个按键都要对应一个IO口进行检测,在一些需要多按键的情况下,使用过多的独立按键会过多的占用单片机的IO资源,为了解决这个问题的出现,我们…...

RPA+AI:自动化办公机器人开发指南
RPAAI:自动化办公机器人开发指南 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 RPAAI:自动化办公机器人开发指南摘要引言技术融合路径1. 传感器层:多模态数据接入2. 决策层&…...
Flask 基础与实战概述
一、Flask 基础知识 什么是 Flask? Flask 是一个基于 Python 的轻量级 Web 框架(微框架)。 特点:核心代码简洁,给予开发者更多选择空间。 与 Django 对比: Django 创建空项目生成多个文件,Flask 仅需一个文件即可实现简单应用(如 "Hello, World!")。 Flask …...

【Java微服务组件】分布式协调P4-一文打通Redisson:从API实战到分布式锁核心源码剖析
欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。 目录 引言Redisson基本信息Redisson网站 Redisson应用…...