麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
658
2023-04-16
详谈MySQL数据库的不同日志和源码
任何一种数据库,都会拥有各种各样的日志,mysql也不例外。
用来记录数据库运行情况,日志操作,错误信息等。
Mysql所支持的日志
在mysql的日志文件里,除了二进制日志,其它都是文本文件。
默认情况下,mysql软件只会启动错误日志文件,而其他日志文件则需要手动启动。
二进制日志:该日志文件会以二进制的形式记录数据库的各种操作,但却不记录查询语句。
错误日志:该日志文件会记录mysql的服务器启动,关闭和运时出错等信息。
通用查询日志:记录客户端连接信息,更新sql语句和查询数据库sql
慢查询日志:记录执行时间超过指定时间的各种操作
启动日志有有点也有缺点
虽然能很好的维护mysql数据库,但会降低执行速度,因此,是否启动日志,启动什么样的日志要根据实际情况而定。
二进制日志
那么为什么要启动二进制日志,如果mysql意外停止,,可以查看二进制文件来看用户执行了哪些操作。,对数据服务器进行了哪些修改。,然后根据二进制文件记录来和恢复数据库服务器。
默认情况下是关闭的,可以修改mysql的配置文件my.ini
[mysqlId]
Log-bin[=dir\[filename]]
dir用来指定二进制的存储路径,finename 文件名,具体格式finename.number number的格式为000001,000002等。除了这个文件,还有一个关于二进制列表的文件filename.index
在启动二进制日志时,最好不要和数据文件放在同一个路径,当数据库的磁盘遭到破坏后,就可以通过二进制文件进行恢复。
怎么查看二进制文件
直接打开会显示乱码,我们用mysqlbinlog命令来实现
例如:mysqlbinlog filename.number
停止二进制日志
如果想删除二进制日志,只需要删除配置文件的log-bin内容
如果你不想重启mysql,你可以执行如下命令:
Set sql_log_bin=0
要需要再重启,只需要执行:Set sql_log_bin=1
注意,只有拥有super权限的用户才具备执行set命令的权力。
删除二进制文件
需要执行命令,reset master(删除所有二进制文件)、
purge maste logs to 例如:purge maste logs to filename.number删除编号小于number的日志。
和 purge master logs before 例如purge master logs before’yyyy-mm-dd hh:MM:ss’删除指定时间之前的日志
操作错误日志
在mysql的安装路径下找到data目录,错误文件通常的命名格式为:hostname.err。想要修改错误日志的存放路径只需要修改配置文件的
err-bin[=dir\[filename]]
查看的时候直接打开就行,如果想删除错误日志
执行命令:mysqladmin -u -root -p flush-logs
然后旧的文件重命名为 filename.err-old,如果没任何用处,可以直接删除
通用查询日志
通用查询日志是mysql非常重要的查询日志之一,主要记录用户关于mysql服务器的所有操作
如何启动
修改配置文件my.ini
Log[=dir\[filename]]
停止这个日志记录:
#Log[=dir\[filename]]
删除:
mysqladmin -u -root -p flush-logs
清空所用日志,新建一个日志文件,如果你想备份,直接重命名,再执行命令。
慢查询日志
启动:
修改my.ini
Log-slow-queries[=dir\[filename]]
关闭服务有的业务场景是不允许的,我们执行命令
Set global slow_query_log=on;
Set global long_query_time=n;
停止慢日志只需要把配置文件相应位置用#替换。
清空所用日志,新建一个日志文件,如果你想备份,直接重命名,再执行命令
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。