关于MySQL的日志及慢查询的日志(排查未使用索引的查询)、centos6.10安装docker:No package docker-io available及Linux命令pwck、grpck等

一、关于MySQL的日志及慢查询的日志(排查未使用索引的查询)

MySQL的日志主要有以下6种:publish:June 22, 2020 -Monday

1.错误日志(error log):mysql启停时错误信息。
2.查询日志(general log):客户端连接和执行的语句。
3.二进制日志(bin log):所有更改数据的语句,可用于数据复制。
4.慢查询日志(slow log):所有执行时间超过long_query_time的查询。
5.中继日志(relay log):主从复制时使用的日志。
6.事务日志(redo log和undo log) :innodb事务日志。

    关于日志滚动:日志滚动实际就是不再在旧的日志文件上记录,而在新的一个日志文件上进行记录日志。比如二进制日志在单日志文件达到设置上限(max_binlog_size配置)、进行flush logs/refresh操作、进行数据库重启操作时都会进行日志滚动。

    关于日志删除:二进制日志默认会在数据目录下创建类似mysql-bin.000001的日志文件,同时在mysql-bin.index文件中记录这些文件的索引。随着数据库的使用,文件会越来越多,可以使用:reset master删除所有日志并重新从000001开始。也可以修改配置项expire_logs_days=N指定自动过期清空多少天前的日志。也可以使用PURGE命令指定删除至哪个文件之前的文件,也可以删至指定日期之前的所有日志。格式和示例如下:

#格式:PURGE { BINARY | MASTER } LOGS { TO 'log_name' | BEFORE datetime_expr }
mysql> purge master logs to "mysql-bin.000219";
mysql> purge master logs before '2020-06-20 18:14:25';

    关于慢查询日志:慢查询日志除了能设置记录超过多少秒的查询日志之外,还可以使用log_queries_not_using_indexes配置来记录所有未使用索引的查询。慢查询日志相关的变量如下:

#慢查询时长
long_query_time=10
#查询日志和慢查询日志的输出,默认file
log_output={TABLE|FILE|NONE} 
#是否启用慢查询日志,默认不启用
log_slow_queries={yes|no}
#是否启用慢查询日志,和上面的配置一样或的关系
slow_query_log={1|ON|0|OFF}
#slow.log位置
slow_query_log_file=/mydata/data/hostname-slow.log
#查询没有使用索引的时候是否也记入慢查询日志
log_queries_not_using_indexes=OFF

    Mysql是可以动态开启慢查询日志,即线上的服务器没有开启慢日志,可以使用set GLOBAL slow_query_log=1即开始记录慢查询,包括设置是否记录未使用索引的查询等,当然重启后会失效。为防止线上业务受影响,可以先这样修改,同时将配置文件补上配置项即可。

#查询慢查询状态和修改
show VARIABLES like '%slow_query_log%';
set GLOBAL slow_query_log=1;
#设置成功之后进行测试(默认是10秒)
select sleep(11);
#慢查询日志记录如下:
/usr/sbin/mysqld, Version: 5.7.28-log (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /var/run/mysqld/mysqld.sock
Time                 Id Command    Argument
# Time: 2020-06-21T05:52:43.925558Z
# User@Host: u04007[u04007] @  [192.15.12.18]  Id: 116062554
# Query_time: 11.000200  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
use test_database;
SET timestamp=1592718763;
select sleep(11);

二、centos6.10下安装docker:No package docker-io available.

    想在阿里云的centos下安装docker,但发现安装不了,报错:No package docker-io available. 根本找不到安装包,安装过程如下:

dever@US504# yum install -y epel-release
Loaded plugins: security
Setting up Install Process
Package epel-release-6-8.noarch already installed and latest version
Nothing to do
dever@US504#  /usr/bin/yum update
Loaded plugins: security
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package curl.x86_64 0:7.19.7-53.el6_9 will be updated
---> Package curl.x86_64 0:7.19.7-54.el6_10 will be an update
--> Finished Dependency Resolution
Upgrade       1 Package(s)
Total download size: 198 k
Is this ok [y/N]: y
Downloading Packages:
curl-7.19.7-54.el6_10.x86_64.rpm                
dever@US504# /usr/bin/yum install docker-io
Loaded plugins: security
Setting up Install Process
No package docker-io available.
Error: Nothing to do
#试了试docker,此项能安装,不过并不是真正要用的docker
dever@US504# /usr/bin/yum install docker
Loaded plugins: security
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package docker.x86_64 0:1.5-5.el6 will be installed
--> Finished Dependency Resolution

    没有什么问题,这里是docker的官方文档:CentOS | Docker Docs 。在系统要求方面有详细说明,见地址:CentOS | Docker Docs 。To install Docker Engine, you need a maintained version of CentOS 7. Archived versions aren’t supported or tested. 即docker官方不支持Centos6,所以赶紧升级系统吧。

三、Linux的几个非常用命令:pwck和grpck,vipw和vigr,pwconv和grpconv

pwck命令功能:检查用户密码文件的完整性(/etc/passwd以及/etc/shadow文件)。
用法:pwck [-q] [-s] [passwd [ shadow ]]
参数:-q:只显示错误信息,警告不显示
-s:按id排序
-r:只读方式检查

grpck命令功能:检查用户组及密码文件的完整性(etc/group以及/etc/gshadow文件)
用法: grpck [-r] [group [ shadow ]]
参数:与pwck一样

#如下:检查出来的这些用户没有家目录,但都是正常的,因为都是nologin用户, 另外使用grpck检查无误。
[root@007 ~]# pwck
user 'adm': directory '/var/adm' does not exist
user 'uucp': directory '/var/spool/uucp' does not exist
user 'gopher': directory '/var/gopher' does not exist
user 'saslauth': directory '/var/empty/saslauth' does not exist
user 'mysql': directory '/home/mysql' does not exist
user 'www': directory '/home/www' does not exist
user 'kerker': directory '/home/kerker' does not exist
pwck: no changes
[root@007 ~]# grpck
[root@007 ~]# 

        其它的几个命令 pwconv 和grpconv用于手动编辑/etc/passwd和group文件后同步给/etc/shadow和gshadow文件。

pwconv   :同步用户信息,从/etc/passwd 到/etc/shadow
grpconv :通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;

pwunconv  :pwcov 的逆向操作,从/etc/shadow创建/etc/passwd然后删除shadow文件;
grpunconv  :通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group,然后删除gshadow文件。

        grpconv和pwconv命令用来开启群组、用户的投影密码。早期Linux系统里的用户和群组密码,分别存放在/etc目录下的passwd和group文件中。因系统运作需要任何人都能读取它们,造成安全破绽。投影密码将文件内的密码改存在/etc目录下的shadow和gshadow文件内,只允许系统管理者读取,同时把原密码置换为"x"字符。投影密码的功能可随时开启或关闭,您只需执行grpconv指令就能开启群组投影密码。

最后还有两个命令:vipw和vigr,快捷打开编辑passwd文件和groups文件

vipw 编辑密码文件,并且上锁,其他人无法修改
vipw 会打开/etc/passwd文件,可以对其进行编辑
vipw -s :修改/etc/shadow文件

vigr 编辑用户组文件 ,并且上锁,其他人无法修改
vigr 修改/etc/groups文件
vigr -s 修改/etc/gshadow文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林戈的IT生涯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值