无论是应用运维,还是数据库运维,均可以分为“人肉”-“自动化”-“智能化”阶段,其中自动化阶段,主要是将一些人做的操作,尤其是一些重复性操作,封装为程序,一方面避免重复性操作,另一方面提高执行效率。自动化实现的过程中,经常使用的,可能就是shell脚本了,前段时间,从一个微信公众号,学习了赵班长写的一篇小文,循序渐进的方式,介绍了shell运维脚本的编写,小脚本有大智慧,几十行代码,夹杂着系统设计、代码规范等细节,值得学习。
概述 不怕出问题,就怕出问题找不到原因 运维团队一般会有个需求就是记录运维或者开发同事在服务器上的操作记录,比如进行一些常规审核或者是服务器被黑了、服务器日志被删的情况需要知道发生过什么事情,今天和大家分享下我们现在的服务器的shell和mysql操作日志记录的DIY方案。 团队内部之前有测试过一些堡垒机硬件,但终端操作方面不够人性化,不够灵活,而且价格昂贵,硬件容易形成单点故障。当然也接触过一些开源的方案,比如可以直接用ttyrec对终端进行录制,并且支持文本匹配,但是在实际使用中发现过严重bug,
在一次客户的数据库实例连接不上了,需要我们排查一下原因,通过查看数据库实例进程已经不存在了,在错误日志中没有发现其他报错信息,发现有shutdown的字样出现,怀疑是某个用户手动关闭了实例。我们通过以下测试,发现是由于用户关闭了主机所导致的。
物理备份是指直接复制包含数据的文件夹和文件。这种类型的备份适用于大数据量且非常重要,遇到问题需要快速回复的数据库。
secure_file_priv 是用来限制 load dumpfile、into outfile、load_file() 函数在哪个目录下拥有上传或者读取文件的权限
我们建站的时候经常会碰到数据库崩溃停止的情况,可以使用 Shell 脚本来检测 MySQL 服务状态并在需要时重启它。以下是一个简单的 Shell 脚本示例,它会检查 MySQL 服务是否运行,如果服务停止,脚本将尝试重启服务。
标题虽然叫做MySQL家族新成员,但如果从发布时间上来看,MySQL Shell已经不能算做新成员了,它的正式版与MySQL8.0同一天诞生,2018年4月19日,但还有很多人对它比较陌生,所以称之为“新”。在这篇文章里,我将会介绍一下它的部分功能和使用方法。
数据库审计平台(简称DB Audit),实时记录用户操作数据库的行为,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行实时告警。通过对用户访问数据库行为记录、分析和汇报,来帮助DBA事后生成合规报告、事故追根溯源,同时通过搜索技术提供高效查询审计报告,定位事件原因,以便日后查询、分析、过滤,实现加强内外部数据库网络行为的监控与审计,提高数据资产安全。
常见的数据库攻击包括弱口令、SQL注入、提升权限、窃取备份等。对数据库日志进行分析,可以发现攻击行为,进一步还原攻击场景及追溯攻击源。
Django ORM生成的MySQL数据库的SQL语句其实可以通过打印QuerySet对象的query属性来查看,但是这样只能查看到对应的SQL语句,你依旧不知道在Mysql数据库中执行了操作。所以最好的办法还是直接查看MySQL数据库的日志。
同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分。MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等。这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等。本文主要描述通用查询日志。
Windows 系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。
注:使用set语句设置slow_query_log_file参数的时候需要设置为已经存在且具有对应权限的文件,否则会报错设置失败
phpMyAdmin是一个以PHP为基础,以web方式架构在服务器上的MySQL的数据库管理工具。让管理者可以通过Web接口来管理MySQL数据库。因其基于Web的简便易操作的图形化界面备受网站管理者的喜爱。
同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分。MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等。这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等。本文主要描述错误日志文件。
使用mysqlbinlog按时间查询二进制日志时,会用到start-datetime和stop-datetime选项。
网上,关于入侵痕迹分析的文章很多,在此将个人工作中常用的一些方法技巧(班门弄斧了),以及爬过的坑总结如下(当然,其中有些方法也是从各位前辈的经验中学习的)。入侵痕迹分析,不外乎正向推理,和逆向推理。当已经掌握部分线索时,可通过逆向推理,快速确定事发时间、影响范围、事发原因等;当没有明确的线索,可以入侵者的视角,通过正向思维进行推理,从而发现入侵行为;两种方法都可以以敏感文件、敏感命令、敏感IP、攻击特征关键字为线索,推理出事发时间、事发原因。
在Linux中如果应用程序会产生日志,那么就需要考虑日志切割,例如按照固定的大小切割、按照日期进行切割等等。同样,在编译Nginx1.9.0、MySQL5.7.7rc和PHP7后,这三个应用服务都会产生日志,尤其是Nginx进程根据配置文件ngnix.conf记录每条访问记录到access.log中。如果所有的日志都打印到同一个文件中的话,那么时间长了的话就会影响效率。
本文是微信公众号【Java技术江湖】的《重新学习MySQL数据库》其中一篇,本文部分内容来源于网络,为了把本文主题讲得清晰透彻,也整合了很多我认为不错的技术博客内容,引用其中了一些比较好的博客文章,如有侵权,请联系作者。
同大多数关系型数据库一样,日志文件是 MySQL 数据库的重要组成部分。MySQL 有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等。这些日志可以帮助我们定位 mysqld 内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等。本文主要描述错误日志文件。
误删数据库应该如何恢复操作?怎样才能做好数据库的备份、恢复、容灾、HA?如果你身处数据库行业,最近可能会比较关注这几个问题
关于新的MySQL Shell Dump&Load实用程序的第二部分旨在演示性能,同时还将其与其他各种逻辑转储和加载工具进行比较:mysqldump,mysqlpump&mydumper。
1)show variables like '%verision%'; 显示数据库版本号,存储引擎等信息
同MongoDB,Redis这样的NoSQL数据库的复制相比,MySQL复制显得相当复杂!
Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。
这篇文章将详细地介绍MySQL的高可用解决方案—— MySQL InnoDB Cluster。
很多时候我们为了安全审计或者故障跟踪排错,可能会记录分析主机系统的操作行为。比如在系统中新增了一个用户,修改了一个文件名,或者执行了一些命令等等,理论上记录的越详细, 越有利于审计和排错的目的。不过过剩的记录也会为分析带来不少麻烦, 尤其是将很多主机的记录行为发送到固定的远程主机中,数据越多,分析的成本便越大。
phpMyadmin是一个以PHP为基础的MySQL数据库管理工具,使网站管理员可通过Web接口管理数据库 。
mysql性能优化(九) mysql慢查询分析、优化索引和配置
该文介绍了如何通过MySQL/MariaDB配置来增强Linux服务器安全性。主要包括以下步骤:1.安全地安装MySQL;2.将数据库服务器绑定到Loopback地址;3.禁用MySQL的LOCALINFILE;4.修改MySQL的默认端口;5.启用MySQL日志;6.设置合适的MySQL文件访问权限;7.删除MySQL shell历史;8.不要在命令行中运行MySQL命令;9.定义特定应用的数据库用户;10.使用额外的安全插件和库。通过这些步骤,可以有效地保护MySQL/MariaDB数据库服务器的安全性,防止潜在的安全威胁。
在写本文章开始之前我给大家说下,根据个人学历理解记录的笔记,如果有什么问题可以关注、联系我们一起讨论。本人还是建议大家多多学习体系的技术。博客不会讲解太细。
如今,MySQL已经是非常普及的数据库,开源社区的支持也是非常活跃。谈到官方运维工具,大家都会用到mysqldump,其实除了这个之外还有一些实用的工具,今天帮大家梳理一下。
单独备份表的话需要表在独立的表空间里面,即配置了innodb_file_per_table参数
MySQL General log是记录mysqld(MySQLserver进程)收到的所有请求的日志,我们可以通过这个命令查看格式:
mysql.user下有所有的用户信息,其中authentication_string为用户密码的hash,如果可以使用可以修改这个值,那么就可以修改任意用户的密码
Centos7初始化脚本 初始化脚本 进入centos7系统,使用脚本 # wget https://gitee.com/funet8/centos6_LANP_dockerfile/raw/master/shell/CentOS7.x_system_init_shell_mini.sh 修改hostname和端口 HOSTNAME="node2" SSH_PROT="60920" 执行脚本: # sh CentOS7.x_system_init_shell_mini.sh 功能介绍: # 1、
备份完成后可以看到在/oradata/data/mysql/xtra目录下新建了以日期命名的目录
在系统运行的过程中,DBA需要经常的对数据库进行一些检查,如数据库磁盘的占用量,缓存的命中率,内存的分配等;由于有个客户需要对系统的数据库进行检查,所以进行了一些学习,在此记录下;由于不可能让用户手动的输入这些繁琐的命令,所以写了个 shell 脚本。
MySQL 是世界上最流行的开源数据库系统,MariaDB(一个 MySQL 分支)是世界上增长最快的开源数据库系统。在安装 MySQL 服务器之后,在默认配置下是不安全的,确保数据库安全通常是通用数据库管理的基本任务之一。 这将有助于增强和提升整个 Linux 服务器的安全性,因为攻击者总是扫描系统任意部分的漏洞,而数据库在过去是重点目标区域。一个常见的例子是对 MySQL 数据库的 root 密码的强制破解。 在本指南中,我们将会讲解对开发者有帮助的 MySQL/MariaDB 的 Linux 最佳
Hi,大家好,我是麦洛,今天我们聊聊MySQL的备份和恢复,在下面文章中,你会了解到MySQL常见的备份类型,以及基于mysqldump命令在日常开发中如何做MySQL数据库以及表的备份和恢复。最近开始玩公众号了,喜欢的小伙伴可以关注我
general_log指的是日志保存状态,一共有两个值(ON/OFF)ON代表开启 OFF代表关闭。
对于MySQL的完全恢复,我们可以借助于Innobackupex的多重备份加上binlog来将数据库恢复到故障点。这里的完全恢复是相对于时点恢复(也叫不完全恢复)。本文主要演示了基于Innobackupex如何做一个完全恢复,供大家参考。 有关Innobackupex的备份恢复的知识点请参考以下链接:
因此,在下方的实现方法并不一定是最优解,甚至是比较笨的解决方法,但是仍然决定记录下来。
作为一款开源产品,MySQL拥有全面的知识文档,这是目前其他开源产品与其无法相比的一点。
删除默认建立的站点的虚拟目录,停止默认web站点,删除对应的文件目录c:inetpub,配置所有站点的公共设置,设置好相关的连接数限制,带宽设置以及性能设置等其他设置。配置应用程序映射,删除所有不必要的应用程序扩展,只保留asp,php,cgi,pl,aspx应用程序扩展。对于php和cgi,推荐使用isapi方式解析,用exe解析对安全和性能有所影响。用户程序调试设置发送文本错误信息给客户。对于数据库,尽量采用mdb后缀,不需要更改为asp,可在IIS中设置一个mdb的扩展映射,将这个映射使用一个无关的dll文件如C:WINNTsystem32inetsrvssinc.dll来防止数据库被下载。设置IIS的日志保存目录,调整日志记录信息。设置为发送文本错误信息。修改403错误页面,将其转向到其他页,可防止一些扫描器的探测。另外为隐藏系统信息,防止telnet到80端口所泄露的系统版本信息可修改IIS的banner信息,可以使用winhex手工修改或者使用相关软件如banneredit修改。
随着数据量的增大,读写并发的增加,系统可用性要求的提升,单机 MySQL 出现危机:
MySQL中的日志包括:错误日志、二进制日志、通用查询日志、慢查询日志等等。这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志。
领取专属 10元无门槛券
手把手带您无忧上云