前面我们介绍了Docker 安装单机版mysql,如果没有看可以先看下:https://blog.csdn.net/u011837804/article/details/128315385
本篇学习的前提是懂得mysql主从复制的原理,话不多说,我们开始。
1、下载mysql5.7镜像
涉及命令:
- 查看本地镜像命令:docker images
- 拉取mysql5.7版本镜像命令:docker pull mysql:5.7
实例:
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
实例:
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
实例:
3.2、在master中创建主从复制用户
涉及命令:
grant replication slave on *.* to 'slave'@'%' identified by '123456';
实例:
3.3、修改slave配置文件并重启slave实例
master配置文件在宿主机位置:/usr/local/tool/volumn/mysql-slave/conf/my.cnf
配置文件内容更改为:
3.4、在master中查看主从同步状态
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;
3.6、在slave中开启主从同步
涉及命令:
- start slave 启动主从复制
- show slave status\G; 查看slave状态
4、测试mysql主从复制
实例:进入master创建test_db,然后进入slave 查看是否有test_db数据库
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/84252.html