开源数据库Mysql_DBA运维实战 (DCL/日志)
SQL(Structured Query Language 即结构化查询语言)
a.DDL语句 数据库定义语言: 数据库,表,视图,索引,存储过程,函数,创建删除ALTER(CREATE DROP ALTER)
b.DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE
c.DQL语句 数据库查询语言:查询数据SELECT
d.DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT,REVOKE
DCL
DCL的概述
DCL(Data Control Language 数据控制语句)的操作是数据库对象的权限,这些操作的确定使数据更加的安全。
四种权限级别
1.Global level 所有库,所有表的权限
2.Database level 某个数据库中的所有表的权限
3.Table level 库中的某个表的权限
4.Column level 表中的某个字段 的权限
Mysql用户管理
1.创建用户
代码注释:CREATE 创建(关键字) USER 用户(关键字) user1 用户名称(自定义) @ 分隔符(关键字) ‘localhost’ 允许登录的主机 IDENTIFIED BY 身份认证(关键字) ‘QianFeng@123456’ 用户密码CREATE USER user1@'localhost' IDENTIFIED BY 'QianFeng@123456';
验证: select * from mysql.user\G;
2.删除用户
DROP USER 'user1'@'localhost';验证: select * from mysql.user\G;
drop user 'user1'@'localhost';
select user from mysql.user;
3.修改用户密码
Root修改自己密码
#示例1 mysqladmin -uroot -p'123' password 'new_password'#示例2 SET PASSWORD=password('new_password');刷新权限: FLUSH PRIVILEGES;
当root用户,忘记了密码。可以使用破解的方式来登录系统。修改密码。
原理:使系统在启动时,不加载密码文件。
丢失root用户密码
a.修改mysql启动设置
# vim /etc/my.cnf[mysqld]skip-grant-tablesb.重启mysql,无密码登录
重启mysql程序 # systemctl restart mysqld无密码登录 # mysql -urootc.修改自己的密码
mysql>UPDATE mysql.user SET authentication_string=password('QianFeng@123456789') where user='root' and host='localhost';mysql> FLUSH PRIVILEGES;d.修改mysql启动设置
注释掉跳过密码
4.登录MySQL
mysql -P 3306 -u root -p123 mysql -e 'show tables'-h 指定主机名 【默认为localhost】
注释: -P MySQL服务器端口 【默认3306】 大P
-u 指定用户名 【默认root】
-p 指定登录密码 【默认为空密码】
-e 接SQL语句
免登录查询数据库
mysql -uroot -p'QianFeng@123' -hlocalhost -P 3306 mysql -e 'show tables'
Mysql权限原理
语法格式:
grant 权限列表 on 库名.表名 to '用户名'@'客户端主机' [identified by '密码' with option参数];注释:
==权限列表:all 所有权限(不包括授权权限)
select,update 查询更新
==数据库.表名 : *.* 所有库下的所有表
web.* web库下的所有表
web.box web库下的box表
grant SELECT (id), INSERT (name,age) ON mydb.mytbl to 'user8'@'localhost' identified by 'QianFeng@123';==客户端主机: % 所有主机
192.168.2% 192.168.2网段的所有主机
192.168.119.156 指定主机
localhost 指定主机
==with_option参数: GRANT OPTION 授权的选项
Mysql权限示例
赋予权限
授权目标:授予admin3 对bbs库 所有的表,具有所有权限(不包含授权)
GRANT ALL ON bbs.* TO admin3@'%' IDENTIFIED BY 'QianFeng@13910604684';准备测试授权账户:
root账户创建:
CREATE USER admin3@'%' IDENTIFIED BY 'QianFeng@123';root账户授权
GRANT ALL ON bbs.* TO admin3@'%' IDENTIFIED BY 'QianFeng@13910604684';使用测试账户操作数据库
[root@localhost ~]# mysql -uadmin3 -p'QianFeng@123'mysql> create database bbs;mysql> create database bba;ERROR 1044 (42000): Access denied for user 'admin3'@'%' to database 'bba'进入bbs库,创建数据表和插入数据。授权验证完毕回收权限
查看权限
查看自己的权限 SHOW GRANTS\G
查看别人的权限 SHOW GRANTS FOR admin3@'%'\G
回收权限REVOKE
语法:REVOKE 权限列表 ON 数据库名 FROM 用户名@‘客户端主机’
REVOKE ALL PRIVILEGES ON bbs.* FROM admin3@’%’; //回收所有权限

日志
日志分类

1 错误日志 :启动,停止,关闭失败报错。rpm安装日志位置 /var/log/mysqld.log
2 通用查询日志:所有的查询都记下来。
3 二进制日志:实现备份,增量备份。只记录改变数据,除了select都记。
4 中继日志:读取主服务器的binlog,在本地回放。保持一致。
5 slow log:慢查询日志,指导调优,定义某一个查询语句,定义超时时间,通过日志提供调优建议给开发人员。
6 DDL log: 定义语句的日志。
日志的弊端:
日志功能会 降低MySQL数据库的性能 。
日志会 占用大量的磁盘空间 。
Error Log
1)错误日志的介绍
错误日志(error log):记录MySQL服务进程mysqld在自动/关闭或远行过程中遇到的错误信息
如果哪天mysql服务起不来了,请来这个日志文件看看。
2)错误日志的设置
vim /etc/my.cnf 进入主配置文件,观察日志是否启动。
log-error=/var/log/mysqld.log 该字段,标记是否启动日志,以及日志位置。
在my.cnf配置文件里面查看错误日志log-error
[root@linzhongniao ~]# sed -n '78,79p' /data/3306/my.cnf
[mysqld_safe]
log-error=/data/3306/mysql_linzhongniao3306.err
Binary Log
(1)二进制日志的介绍
二进制日志(binary log):记录数据被修改的相关信息。
(2)二进制日志的设置
从库提升主库必须开启log-slave-updates
# vim /etc/my.cnflog_bin 添加该字段。指启动二进制日志server-id=2 群集问题,必须指定该主机的序号。数字随意# systemctl restart mysqld 重启数据库
测试:
a.查看二进制日志文件当前状态
ls /var/lib/mysql/*bin* 查询二进制文件生成完成
mysqlbinlog -v /var/lib/mysql/localhost-bin.000001 查看二进制文件日志
b.进入数据库,进行数据操作
c.完成二进制日志启动,查询测试
mysqlbinlog -v /var/lib/mysql/localhost-bin.000001 找到刚才创建的记录即可
Slow Query Log
MySQL的慢查询日志,用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10秒以上(不含10秒)的语句,认为是超出了我们的最大忍耐时间值。
它的主要作用是,帮助我们发现那些执行时间特别长的SQL查询,并且有针对性地进行优化,从而提高系统的整体效率。当我们的数据库服务器发生阻塞、运行变慢的时候,检查一下慢查询日志,找到那些慢查询,对解决问题很有帮助。例如一条SQL执行超过5秒钟,我们就算慢SQL,希望能收集超过5秒的sql,结合explain进行全面分析。
默认情况下,MySQL数据库没有开启慢查询日志,需要我们手动来设置这个参数。如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响
慢查询日志支持将日志记录写入文件。
开启慢查询日志功能
vim /etc/my.cnf#加入下面2行配置 slow_query_log=1 启动慢查询日志这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句。long_query_time=3 当SQL语句执行时间超过此数值时,就会被记录到日志中,建议设置为1或者更短。#重启服务器 #systemctl restart mysqld查看慢查询日志文件
#查看日志文件已经生成 ll /var/lib/mysql/*slow*模拟慢查询
#基本测试语句,测试一个超长时间的查询mysql>SELECT BENCHMARK(500000000,2*3);验证慢查询日志
#观察长查询日志记录,记录了刚才超长的查询结果。稍后反馈给开发部,进行优化。tail /var/lib/mysql/localhost-slow.log
相关文章:
开源数据库Mysql_DBA运维实战 (DCL/日志)
SQL(Structured Query Language 即结构化查询语言) a.DDL语句 数据库定义语言: 数据库,表,视图,索引,存储过程,函数,创建删除ALTER(CREATE DROP ALTER) b.DML语句 数…...
神经网络基础-神经网络补充概念-03-逻辑回归损失函数
概念 逻辑回归使用的损失函数通常是"对数损失"(也称为"交叉熵损失")或"逻辑损失"。这些损失函数在训练过程中用于衡量模型预测与实际标签之间的差异,从而帮助模型逐步调整权重参数,以更好地拟合数…...
基于深度信念神经网络的矿石产量预测,基于DBN的矿石产量预测,DBN的详细原理
目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机(RBM) DBN的矿石产量预测 基本结构 主要参数 数据 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络,拥有提取特征,非监督学习的能力,是一种非常好的分类算法,本文将DBN算法进行矿石产量预测 DB…...
JavaWeb-Filter过滤器
目录 Filter过滤器 1. Filter的生命周期 2.Filter的配置 3.拦截路径 4.拦截具体的使用 5.拦截方式配置(资源被访问方式) 6.FilterChain拦截链 Filter过滤器 filter是过滤器,相比于Servlet的发送请求,filter是用于拦截请求。…...
python如何实现1ms内触发两个接口请求
在Python中,可以通过多线程或者协程来实现1ms内触发两个接口请求。以下是两种方法的示例代码: 1.多线程实现: import threading import requestsdef send_request(url):response requests.get(url)print(response.text)# 创建两个线程&…...
深入解析路由与网络:网络的脉络
目录 路由 广域网 公网 外网 局域网 内网 以太网 Wi-Fi CDN IPv4和IPv6 IP地址分类 无类别域间路由(CIDR) 路由 路由是指在计算机网络中,将数据包从源地址传递到目标地址的过程。在一个复杂的网络中,数据包需要经过多…...
spring.HttpMessageNotReadableException: JSON parse error
实体类如下: Value public class Search{//搜索内容String value;//是否模糊搜索boolean fuzzy true; //其实这样写并不是“默认”模糊搜索,而是“一定是”模糊搜索 }spring.HttpMessageNotReadableException: JSON parse error: Cannot construct ins…...
安全中间件的设计思路和简单实践
rasp 的侵入式特性和拦截特性导致开发和运维普通不太愿意配合,当生产环境出现问题时往往第一时间先把责任推给 rasp,逐渐的安全部门普遍只能把 rasp 设置为告警模式,而且越是大的集群拦截开的就越少,所以字节的 elkeid 和某外卖大…...
试卷扫描成电子版方法分享,这个方法不要错过
很多时候,为了方便传输我们需要将试卷扫描成电子版进行存档,以备不时之需。很多小伙伴如果遇到试卷需要扫描转成电子版可能就不知道该如何操作了,其实试卷扫描是一项非常重要的工作,因此需要注意一些方法和细节。以下是试卷扫描成…...
【PostgreSQL的CLOG解析】
同样还是这张图,之前发过shared_buffer和os cache、wal buffer和work mem的文章,今天的主题是图中的clog,即 commit log,PostgreSQL10之前放在数据库目录的pg_clog下面。PostgreSQL10之后修更名为xact,数据目录变更为pg_xact下面&…...
腾讯云国际站代充-阿里云ECS怎么一键迁移到腾讯云cvm?
今天主要来介绍一下如何通过阿里云国际ECS控制台一键迁移至腾讯云国际CVM。腾讯云国际站云服务器CVM提供全面广泛的服务内容。无-需-绑-定PayPal,代-充-值腾讯云国际站、阿里云国际站、AWS亚马逊云、GCP谷歌云,官方授权经销商!靠谱࿰…...
东方晶源亮相第十一届半导体设备年会,共话发展“芯”机遇
8月11日,以“协力同芯抢机遇,集成创新造设备”为主题的第十一届(2023年)中国电子专用设备工业协会半导体设备年会暨产业链合作论坛(CSEAC)在无锡太湖国际博览中心圆满闭幕。为期3天的CSEAC,通过…...
git修改历史commit信息
修改历史提交 commit 的信息 操作步骤: git rebase -i 列出 commit 列表找到需要修改的 commit 记录,把 pick 修改为 edit 或 e,:wq 保存退出修改 commit 的具体信息git commit --amend,保存并继续下一条git 4. 4. rebase --cont…...
基于K8S环境部署Dolphinscheduler及简单应用
一、Dolphinscheduler简介 Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。 Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用…...
Linux的ln命令
ln是link的缩写,在Linux中 ln 命令的功能是为某一个文件在另外一个位置建立一个同步的链接,当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录࿰…...
深入了解Bear Necessities Hackathon黑客松的优胜者们
生态系统中的资深建设者皆知道Moonbeam是大型黑客松狂热爱好者,不论是线上虚拟的还是现场的。然而,很少有黑客松能达到Moonbeam和AWS举办的Bear Necessities黑客松这样的规模和吸引力。本次黑客松共有755人参与,共提交了62份参赛作品。其中22…...
mysql-tokudb使用qa
一、使用前提 安装tokudb引擎的前提条件是物理机要关闭大页,并需要注意物理机所剩内存和配置文件中tokudb_cache_size(内存主要占用部分),innodb_buffer_pool_size的使用,另外tokudb的安装一定要安装libjemalloc依赖&…...
对比学习论文综述总结
第一阶段:百花齐放(18-19中) 有InstDisc(Instance Discrimination)、CPC、CMC代表工作。在这个阶段方法模型都还没有统一,目标函数也没有统一,代理任务也没有统一,所以说是一个百花齐放的时代 1 判别式代理任务---个体判别任务 1.1 Inst Dict---一个编码器+一个memory…...
【BASH】回顾与知识点梳理(二十三)
【BASH】回顾与知识点梳理 二十三 二十三. Linux 账号管理(二)23.1 账号管理新增与移除使用者: useradd, 相关配置文件, passwd, usermod, userdelusermoduserdel 23.2 用户功能(普通用户可使用)idfingerchfnchsh 23.3…...
用 Python 写一个 NoSQL 数据库
NoSQL 这个词在近些年正变得随处可见. 但是到底 “NoSQL” 指的是什么? 它是如何并且为什么这么有用? 在本文, 我们将会通过纯 Python (我比较喜欢叫它, “轻结构化的伪代码”) 写一个 NoSQL 数据库来回答这些问题. OldSQL 很多情况下, SQL 已经成为 “数据库” (database)…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分: (1)PCB焊盘:表层的铜 ,top层的铜 (2)管脚序号:用来关联原理图中的管脚的序号,原理图的序号需要和PCB封装一一…...
Shell 解释器 bash 和 dash 区别
bash 和 dash 都是 Unix/Linux 系统中的 Shell 解释器,但它们在功能、语法和性能上有显著区别。以下是它们的详细对比: 1. 基本区别 特性bash (Bourne-Again SHell)dash (Debian Almquist SHell)来源G…...

