九、Docker 复杂安装之mysql主从复制

导读:本篇文章讲解 九、Docker 复杂安装之mysql主从复制,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

前面我们介绍了Docker 安装单机版mysql,如果没有看可以先看下:https://blog.csdn.net/u011837804/article/details/128315385

本篇学习的前提是懂得mysql主从复制的原理,话不多说,我们开始。

1、下载mysql5.7镜像

涉及命令:

  • 查看本地镜像命令:docker images
  • 拉取mysql5.7版本镜像命令:docker pull mysql:5.7

实例:

九、Docker 复杂安装之mysql主从复制

2、使用mysql5.7镜像创建master、slave 容器

涉及命令:

  • master容器创建命令:
docker run -d -p 3307:3306 
--name mysql-master 
--privileged=true 
-v /usr/local/tool/volumn/mysql-master/log:/var/log/mysql 
-v /usr/local/tool/volumn/mysql-master/data:/var/lib/mysql 
-v /usr/local/tool/volumn/mysql-master/conf:/etc/mysql/conf.d 
-e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

重要Options说明:

选项 说明
-p 3307:3306 master暴露端口为3307
–name mysql-master master容器名称为mysql-master
-v /usr/local/tool/volumn/mysql-master/conf:/etc/mysql/conf.d master配置文件在宿主机的目录

我们在宿主机 ”/usr/local/tool/volumn/mysql-master/conf“ 目录新增my.cnf 文件并填写内容

[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8
  • slave容器创建命令

docker run -d -p 3308:3306 
--name mysql-slave 
--privileged=true 
-v /usr/local/tool/volumn/mysql-slave/log:/var/log/mysql 
-v /usr/local/tool/volumn/mysql-slave/data:/var/lib/mysql 
-v /usr/local/tool/volumn/mysql-slave/conf:/etc/mysql/conf.d 
-e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

重要Options说明:

选项 说明
-p 3308:3306 slave暴露端口为3308
–name mysql-slave slave容器名称为mysql-slave
-v /usr/local/tool/volumn/mysql-slave/conf:/etc/mysql/conf.d slave配置文件在宿主机的目录

我们在宿主机 ”/usr/local/tool/volumn/mysql-slave/conf“ 目录新增my.cnf 文件并填写内容

[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8

实例:

九、Docker 复杂安装之mysql主从复制

 九、Docker 复杂安装之mysql主从复制

3、配置mysql主从复制

3.1、修改master配置文件并重启master实例

master配置文件在宿主机位置:/usr/local/tool/volumn/mysql-master/conf/my.cnf

配置文件内容更改为:

[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8
## 设置server_id,同一局域网中需要唯一
server_id=10
## 指定不需要同步的数据库名称
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

实例:

九、Docker 复杂安装之mysql主从复制

3.2、在master中创建主从复制用户

涉及命令:

grant replication slave on *.* to 'slave'@'%' identified by '123456';

实例:

九、Docker 复杂安装之mysql主从复制

3.3、修改slave配置文件并重启slave实例

master配置文件在宿主机位置:/usr/local/tool/volumn/mysql-slave/conf/my.cnf

配置文件内容更改为:

九、Docker 复杂安装之mysql主从复制

3.4、在master中查看主从同步状态

 九、Docker 复杂安装之mysql主从复制

3.5、在slave中配置主从复制

涉及命令:

change master to
#master ip
master_host='192.168.13.61',
#master 中创建的用于主从复制的用户名
master_user='slave',
#master 中创建的用于主从复制的用户密码
master_password='123456',
#master 端口
master_port=3307,
#master status 中File 列值(当前bin-log文件名)
master_log_file='mall-mysql-bin.000001', 
#master status 中Position 列值(当前bin-log位置)
master_log_pos=438;

 九、Docker 复杂安装之mysql主从复制

3.6、在slave中开启主从同步

涉及命令:

  • start slave 启动主从复制
  • show slave status\G; 查看slave状态

九、Docker 复杂安装之mysql主从复制

4、测试mysql主从复制

实例:进入master创建test_db,然后进入slave 查看是否有test_db数据库

九、Docker 复杂安装之mysql主从复制

九、Docker 复杂安装之mysql主从复制

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/84252.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!