博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在日常维护管理中对MySQL 日志的需求
阅读量:7210 次
发布时间:2019-06-29

本文共 6184 字,大约阅读时间需要 20 分钟。

MySQL 日志管理

由于rizhi文件是掌握数据库运行的重要参考。因此日志文件的维护也是十分重要的意义

MySQL的日志类型:错误日志,普通查询日志,二进制日志,慢查询日志

1.错误日志

(1)错误日志主要记录当MySQL启动和停止时,以及在运行过程中发生任何错误时的相关消息。错误日志迷人保存在MySQL的安装路径data文件夹下,后缀名为.err。在配置文件中指定
[root@localhost data] vim /etc/my.cnf #在mysqld里面添加[mysqld]log-error=/usr/local/mysql/data/mysql_error.log[root@localhost ~]# systemctl restart mysqld.service #重启之后会生成这个文件[root@localhost ~]# cd /usr/local/mysql/data/[root@localhost data]# lsmysql_error.log

2:查询通用日志

(1)通用查询日志用来记录MySQL的所有连接的语句,默认状态关闭,。使用SHOW可以查询处日志信息
mysql> show variables like 'general%';+------------------+-------------------------------------+| Variable_name    | Value                               |+------------------+-------------------------------------+| general_log      | OFF                                 || general_log_file | /usr/local/mysql/data/localhost.log |+------------------+-------------------------------------+2 rows in set (0.01 sec)
在配置文件中声明开启
[root@localhost data] vim /etc/my.cnf[mysqld]general_log=ONgeneral_log_file=/usr/local/mysql/data/mysql_general.log[root@localhost data] systemctl restart mysqld.service mysql_general.logmysql> show variables like 'general%'; #状态开启+------------------+-----------------------------------------+| Variable_name    | Value                                   |+------------------+-----------------------------------------+| general_log      | ON                                      || general_log_file | /usr/local/mysql/data/mysql_general.log |+------------------+-----------------------------------------+2 rows in set (0.01 sec)

3:二进制日志

二进制日志用来记录所有更新或者已经潜在更新了数据的语句,记录了数据的更改主要目的是能够最大程度的恢复数据
mysql> show variables like 'log_bin%'; #默认是关闭状态+---------------------------------+-------+| Variable_name                   | Value |+---------------------------------+-------+| log_bin                         | OFF   || log_bin_basename                |       || log_bin_index                   |       || log_bin_trust_function_creators | OFF   || log_bin_use_v1_row_events       | OFF   |+---------------------------------+-------+5 rows in set (0.00 sec)
在配置文件中加入一句话
[root@localhost data] vim /etc/my.cnf[mysqld]log_bin=mysql-bin[root@localhost data] systemctl restart mysqld.service [root@localhost data] lsmysql-bin.000001mysql-bin.index[root@localhost data]# mysql -u root -pmysql> show variables like 'log_bin%';+---------------------------------+---------------------------------------+| Variable_name                   | Value                                 |+---------------------------------+---------------------------------------+| log_bin                         | ON                                    || log_bin_basename                | /usr/local/mysql/data/mysql-bin       || log_bin_index                   | /usr/local/mysql/data/mysql-bin.index || log_bin_trust_function_creators | OFF                                   || log_bin_use_v1_row_events       | OFF                                   |+---------------------------------+---------------------------------------+5 rows in set (0.01 sec)
查询二进制命令
[root@localhost data] mysqlbinlog --no-defaults mysql-bin.000001  #关闭默认的utf8字符集/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;DELIMITER /*!*/;# at 4#180628 16:56:21 server id 1  end_log_pos 123 CRC32 0x4ecddb44  Start: binlog v 4, server v 5.7.17-log created 180628 16:56:21 at startup# Warning: this binlog is either in use or was not closed properly.ROLLBACK/*!*/;BINLOG 'taI0Ww8BAAAAdwAAAHsAAAABAAQANS43LjE3LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1ojRbEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQAAUTbzU4='/*!*/;# at 123#180628 16:56:21 server id 1  end_log_pos 154 CRC32 0x0b6126ac  Previous-GTIDs# [empty]SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;DELIMITER ;# End of log file/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

4:慢查询日志

慢查询日志是记录所有命令执行时间查过long_query_time的设置时间用于查询那些超过系统设置的时间与其对其进行优化
mysql> show variables like '%slow%'; #默认是关闭的+---------------------------+------------------------------------------+| Variable_name             | Value                                    |+---------------------------+------------------------------------------+| log_slow_admin_statements | OFF                                      || log_slow_slave_statements | OFF                                      || slow_launch_time          | 2                                        || slow_query_log            | OFF                                      || slow_query_log_file       | /usr/local/mysql/data/localhost-slow.log |+---------------------------+------------------------------------------+5 rows in set (0.00 sec)
对其进行开启
第一种方法
mysql> set global slow_query_log=ON;Query OK, 0 rows affected (0.01 sec)mysql> show variables like '%slow%';+---------------------------+------------------------------------------+| Variable_name             | Value                                    |+---------------------------+------------------------------------------+| log_slow_admin_statements | OFF                                      || log_slow_slave_statements | OFF                                      || slow_launch_time          | 2                                        || slow_query_log            | ON     #开启                                  || slow_query_log_file       | /usr/local/mysql/data/localhost-slow.log |+---------------------------+------------------------------------------+5 rows in set (0.00 sec)
第二种方法直接在配置文件里面设定
[root@localhost data] vim /etc/my.cnfslow_query_log=ON           #开启慢日志slow_query_log_file=mysql_slow_query.loglong_query_time=5 #时间为5秒
查看慢查询时间
mysql> show variables like 'long_query_time';+-----------------+----------+| Variable_name   | Value    |+-----------------+----------+| long_query_time | 5.000000 |+-----------------+----------+1 row in set (0.00 sec)
MySQL里面的乱码是设定它的字符集两种方法
1:临时修改
mysql> set names utf8; #开启重启后失效
2:永久性修改(安装MySQL的时候在配置文件里面就指定字符集utf-8格式)
[root@localhost data] vim /etc/my.cnf[client]default-character-set=utf8[mysql]default-char[mysqld][mysqld]character_set_server=utf8

转载于:https://blog.51cto.com/13645280/2134710

你可能感兴趣的文章
exp函数
查看>>
MySql的一些用法
查看>>
DAMICON'S LIST OF OPEN SOFTWARE
查看>>
js-用于检测类数组对象的函数
查看>>
php 获取客户端的浏览器信息
查看>>
JavaScript------获取表单信息
查看>>
R语言︱文本挖掘——词云wordcloud2包
查看>>
Chapter 3 Phenomenon——18
查看>>
hibernate+spring整合增删改事务错误
查看>>
怎样理解阻塞与非阻塞、同步与异步的区别?
查看>>
C语言不定参数
查看>>
Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fab...
查看>>
在JavaScript中对HTML进行反转义
查看>>
面向服务的架构SOA
查看>>
WinForm 窗体初始位置篇
查看>>
PowerShell发送邮件(587)
查看>>
Chapter 3 Phenomenon——23
查看>>
自动化测试如何解决验证码的问题
查看>>
利用位操作的几道题目
查看>>
导入时如何定制spring-boot依赖项的版本
查看>>