服务器docker容器开启mysql日志

大哥让我把mysql数据库日志打开,找了些文章,汇总记录下

1.通过命令查看mysql的CONTAINER ID

[root@smart-cloud-TC01 ~]# docker ps -a

在这里插入图片描述

2.执行这个命令可以进入正在启动的容器内部,需要加上容器的id

[root@smart-cloud-TC01 ~]# docker exec -it 206a9fcb1247 /bin/bash

-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端

查看下目录结构,和普通的linux系统的目录基本一致
在这里插入图片描述

3.登录mysql数据库

root@206a9fcb1247:/# mysql -u root -p

4.查看是否启用了日志

mysql> show variables like '%log%';

ON开启日志,OFF关闭日志,默认好像是关闭的
在这里插入图片描述

5.退出mysql

mysql> exit

6.现在通过编辑mysqld.cnf文件,来配置mysql日志

root@206a9fcb1247:/# vim /etc/mysql/mysql.conf.d/mysqld.cnf

但是我编辑不了 = =!
在这里插入图片描述
问了下同学,因为docker内部是个简化linux,需要安装vim编辑器(如果有就不需要,直接配置文件就好了)

apt-get update
apt-get install vim

在这里插入图片描述
安装完成之后,开始编辑文件

在linux下:

# 在[mysqld] 中输入  
#log  
log-error=/usr/local/mysql/log/error.log  
log=/usr/local/mysql/log/mysql.log  
long_query_time=2  
log-slow-queries= /usr/local/mysql/log/slowquery.log

开启慢查询 long_query_time =2 --是指执行超过多久的sql会被log下来,这里是2秒
log-slow-queries= /usr/local/mysql/log/slowquery.log --将查询返回较慢的语句进行记录

log-queries-not-using-indexes = nouseindex.log
–就是字面意思,log下来没有使用索引的query

log=mylog.log --对所有执行语句进行记录

编辑完成之后保存退出

Esc  :wq

再退出docker容器

root@206a9fcb1247:/etc/mysql# exit

7.重启mysql容器

[root@smart-cloud-TC01 ~]# docker restart 206a9fcb1247

8.查看容器是否启动成功

[root@smart-cloud-TC01 ~]# docker ps

之后重复上述步骤:
进入mysql容器->登录mysql数据库->查看日志是否开启
变成 ON 就是开启了
之后可以测试些select、update查看一下日志

我每次配置之后重启docker就挂了,试了好多次都不行,也没找到原因。。累了 = =。最后只能在mysql中直接set
比如:mysql > set general_log=on;
这样也是可以生效的,凑合着用吧 😃

参考文章
配置文件参考:

https://www.pontikis.net/blog/how-and-when-to-enable-mysql-logs

docker参考:

https://www.cnblogs.com/fengyun2019/p/11189077.html

//========================================================
注:

如果mysql不是在docker容器中,也可以通过

find / -name mysql

查找mysql位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值