Hello World

mysql 5.7 docker 部署

1. 镜像下载

docker pull mysql:5.7

2. 创建挂载目录

为主节点mysql容器创建挂载的服务目录: /var/application/mysql-master

1. 配置文件目录

创建conf目录,作为mysql的配置文件目录
在conf目录下创建 my.cnf 文件, 并映射为默认配置文件
在conf目录下创建 conf.d和mysql.conf.d 目录
my.cnf 内容如下
[mysqld]
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql

symbolic-links=0
pid-file=/var/run/mysqld/mysqld.pid

server-id=1
character-set-server=UTF8MB4
lower_case_table_names = 1

## 指定不需要同步的数据库名称
binlog-ignore-db=mysql
## 开启二进制日志功能
log-bin=mall-mysql-bin
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed
## 二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062
[client]
socket=/var/run/mysqld/mysqld.sock
# 下面这两个删除后可以不用创建 conf.d,mysql.conf.d 目录
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

2. 数据目录

创建data目录

3. 日志目录

创建log目录

3. 启动容器

1. 启动命令

docker run -d -it -p 3316:3306 --name mysql-master \
--restart=always \
-v /var/application/mysql-master/conf/my.cnf:/etc/my.cnf \
-v /var/application/mysql-master/conf:/etc/mysql \
-v /var/application/mysql-master/log:/var/log/mysql \
-v /var/application/mysql-master/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=test@123 \
mysql:5.7
/var/application/mysql-master 是 mysql主节点的容器服务目录
下面是上面创建的conf,data,log目录
test@123是mysql的密码

2. 从节点配置

从节点参考主节点配置启动
从节点中my.cnf的server-id不能和主节点配置重复
新建/var/application/mysql-slave 目录作为从节点容器的服务目录

4. 主节点配置

1. 创建同步用户

create user 'slave'@'%' identified by 'slave@123';
grant replication slave on *.* to 'slave'@'%';
flush privileges;

2. 查询主库状态

5. 从节点配置

1. 配置主库信息

    change master to master_host='172.16.57.33', master_user='slave', master_password='slave@123', master_port=3316, master_log_file='mall-mysql-bin.000001', master_log_pos=1502, master_connect_retry=30;
mall-mysql-bin.000001 : 主库状态File字段值
1502: 主库状态Position字段值
这里使用的用户即是主库创建的用户

2. 启动同步

start slave;

3. 查看同步状态

6. 主从同步验证

在主节点创建数据库,数据表,数据记录
在从库查看是否正常同步
posted @ 2023-03-16 13:53  小小忧愁米粒大  阅读(322)  评论(0编辑  收藏  举报
瞅啥瞅,好好看书