大哥让我把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下来没有使用索引的querylog=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参考:
//========================================================
注:
如果mysql不是在docker容器中,也可以通过
find / -name mysql
查找mysql位置