一、拉取镜像

sudo docker pull mysql:5.7

1、创建存放映射文件夹

mkdir -p mydata/mysql/log
mkdir -p mydata/mysql/data
mkdir -p mydata/mysql/conf

2、docker run

sudo docker run -p 3306:3306 –name mysql
-v /mydata/mysql/log:/var/log/mysql
-v /mydata/mysql/data:/var/lib/mysql
-v /mydata/mysql/conf:/etc/mysql
-e MYSQL_ROOT_PASSWORD=password
-d mysql:5.7

3、修改配置文件

  • 切换到conf目录下
1
2
touch my.cnf
touch my.conf
  • 先修改my.conf配置
1
vi /mydata/mysql/conf/my.conf
  • 下面是my.conf配置文件内容
1
2
3
4
5
6
7
8
9
10
11
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
  • 再修改my.cnf配置
1
vi /mydata/mysql/conf/my.cnf
  • 追加my.cnf配置文件内容
1
2
3
4
[mysqld]
log-bin=/var/lib/mysql/mysql-bin
server-id=123654
expire_logs_days = 30

二、配置检查

保存之后执行下面操作

  1. docker restart mysql #重启mysql
  2. docker exec -it mysql bin/bash #docker启动mysql客户端
  3. mysql -u root -p
  4. show variables like ‘%log_bin%’; #查看是否生效

在这里插入图片描述

log_bin : ON binlog开启成功

参考:https://www.freebytes.net/it/java/dokcer-mysql-binlog.html