当前位置: 首页 > news >正文

开源数据库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-tables

b.重启mysql,无密码登录

重启mysql程序
# systemctl    restart   mysqld无密码登录
# mysql -uroot

c.修改自己的密码

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谷歌云,官方授权经销商!靠谱&#xff0…...

东方晶源亮相第十一届半导体设备年会,共话发展“芯”机遇

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 命令的功能是为某一个文件在另外一个位置建立一个同步的链接,当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录&#xff0…...

深入了解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)…...

别再手动调UV了!用UE5的WAT世界对齐纹理,5分钟搞定雪地井盖无缝融合

别再手动调UV了!用UE5的WAT世界对齐纹理,5分钟搞定雪地井盖无缝融合雪地里一个突兀的井盖,石块与地面材质接缝处的生硬过渡,这些细节往往成为破坏场景沉浸感的"元凶"。传统UV调整需要美术师逐个物体匹配贴图坐标&#x…...

DMA优化与MIMO系统性能分析:6G通信关键技术

1. DMA优化与MIMO系统性能分析概述动态超表面天线(Dynamic Metasurface Antenna, DMA)作为6G通信系统的关键技术突破,正在重新定义大规模MIMO系统的设计范式。与传统的相控阵天线相比,DMA通过可编程的超表面单元实现对电磁波的精确…...

卡梅德生物技术快报|蛋白的过表达质粒构建与生信分析实验全流程复盘

从事分子生物学实验的科研从业者,在开展功能蛋白研究时,蛋白的过表达质粒构建与诱导表达是必备核心技能。实操过程中,很多人会忽略前期生信分析的重要性,盲目设计引物、构建载体,导致蛋白的过表达失败、蛋白无活性、纯…...

Unity网络游戏开发避坑指南:手把手教你用C#和MySQL复刻餐厅经营联机对战

Unity网络游戏开发实战:餐厅经营联机对战的技术实现与优化1. 从单机到联机:架构设计的核心转变餐厅经营游戏从单机转向联机对战,首要考虑的是如何重构游戏架构。传统单机游戏的所有逻辑都在本地运行,而联机游戏需要将关键逻辑迁移…...

UE5小地图实战:SceneCapture2D+RenderTarget动态雷达优化指南

1. 这不是“加个UI贴图”就能糊弄过去的小地图在UE5项目里做小地图,很多人第一反应是:找张静态地图图片,用UMG拖个Image控件,再写个蓝图把玩家坐标换算成UI像素位置——做完就交差。我去年带一个独立团队做开放世界生存游戏时&…...

代码智能安全:对抗机器学习如何威胁与守护AI编程助手

1. 项目概述:代码智能时代的安全暗礁 作为一名在软件安全与AI交叉领域摸爬滚打了十多年的从业者,我亲眼见证了代码语言模型(CLM)从实验室的奇思妙想,迅速演变为GitHub Copilot、Amazon CodeWhisperer等生产力工具的核心…...

Qwen模型 LeetCode 2603. 收集树中金币 Python3实现

当然可以!这次我给你一个**更精炼、更 Pythonic、逻辑清晰又高效**的 Python3 实现,还附带了详细的思路说明和小技巧~✨这道题的本质是:**在树上剪枝两次后,剩下的边数 2 就是答案**。为什么?因为&#xf…...

AI Agent与传统RPA的融合:自动化办公的新纪元

AI Agent与传统RPA的融合:自动化办公的新纪元 副标题:探索智能自动化的未来:从规则驱动到学习型系统的演进 摘要/引言 在当今快速发展的商业环境中,企业面临着提高效率、降低成本、提升竞争力的巨大压力。自动化技术作为应对这些挑战的关键手段,已经经历了多个发展阶段。…...

技术人的沟通技巧:如何与非技术人员有效沟通

技术人的沟通技巧:如何与非技术人员有效沟通 引言 作为一名技术人,我们不仅需要具备扎实的技术能力,还需要具备良好的沟通能力。特别是当我们需要与非技术人员沟通时,如何将复杂的技术问题用简单易懂的语言表达出来,是…...

思源宋体TTF:解决中文Web排版痛点的专业方案

思源宋体TTF:解决中文Web排版痛点的专业方案 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 当我们构建现代中文网站时,字体选择往往成为最棘手的挑战之一。商业…...