docker下开启mysql的binlog日志

 1.检查容器状态

[root@localhost ~]# docker ps

 执行这个命令可以看到所有正在运行当中的容器,如果加上-a参数,就可以看到所有的容器包括停止的。

 image.png

 我们可以看到容器正在运行当中,本机映射端口为3306->3306

 如果没有运行docker或者容器则

 systemctl start docker

 docker start 7c5cb1505ea7

2.进入容器

[root@localhost ~]# docker exec -it 7c5cb1505ea7 /bin/bash

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

-i :即使没有附加也保持STDIN 打开

-t :分配一个伪终端

 image.png

查看一下容器内部的目录结构,我们发现和一个普通的linux系统的目录基本一致

 image.png

3、登录mysql并进行操作

root@7c5cb1505ea7:/# mysql -uroot -p

输入命令,并输入mysql数据库密码

 image.png

4、查看是否开启binlog日志

mysql> show variables like 'log_bin';

在这里我已经开启过了值为ON则表示已经开启,OFF则没有开启

5.编辑配置文件开启binlog

root@7c5cb1505ea7:/etc/mysql# vi my.cnf

 image.png

添加开启binlog配置,保存退出:

 image.png

这一个参数的作用是mysql会根据这个配置自动设置log_bin为on状态,自动设置log_bin_index文件为你指定的文件名后跟.index

第二个参数 ,用的如果是5.7及以上版本的话,重启mysql服务会报错,这个时候我们必须还要指定这样一个参数,随机指定一个不能和其他集群中机器重名的字符串,如果只有一台机器,那就可以随便指定了

按ctrl+D退出容器(或者exit命令)

6、重启mysql容器:

[root@localhost ~]# docker restart 7c5cb1505ea7

image.png

7、查看容器是否启动成功

[root@localhost ~]# docker ps

可以看到容器启动成功。

 image.png

8、进入容器查看binlog是否开启

查看是否开启binlog:

可以看到binlog已经开启。

  image.png

9.一些特殊情况的处理

如果我们改错配置文件,导致容器启动不起来,我们想把配置文件改回来怎么办呢?

首先我们根据docker去查看错误日志,后面加上容器的id。

我们可以根据查询到的日志结果找出错误的原因。

之后在根目录下搜索这个文件:

[root@localhost ~]# find / -name my.cnf

我们可以根据找到的文件进行修改,之后再重新启动容器。

image.png

10.备份mysql容器中的数据库

 image.png