• 售前

  • 售后

热门帖子
入门百科

Docker摆设MySQL8集群(一主二从)的实现步骤

[复制链接]
我爱霍启刚掖 显示全部楼层 发表于 2021-8-14 15:12:27 |阅读模式 打印 上一主题 下一主题
目次


  • 一.CentOS7.9安装Docker20
  • 二.摆设MySQL集群(一主二从)
  • 三.效果

一.CentOS7.9安装Docker20

1.安装yum-utils工具
  1. yum install -y yum-utils
复制代码
2.设置docker的依赖源
  1. yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
复制代码
解释:CentOS直接使用yum下令安装的Docker版本为1.13.1属于旧版docker的末了一个版本,以是必要设置一个repo,才能安装新版的Docker-CE(社区版)。Docker-EE(企业版)需收费读者自行相识即可,这里使用CE社区版
3.安装docker
  1. yum -y install docker-ce
复制代码
4.检察安装的版本
  1. docker -v
  2. docker version
复制代码


5. 检察配套设置的版本
  1. yum list installed | grep docker
复制代码

6.拉取MySQL8镜像
  1. docker pull mysql:8
复制代码
注解:mysql:5.7代表mysql版本为5.7
检察docker镜像
  1. docker images
复制代码


二.摆设MySQL集群(一主二从)

1.创建主从MySQL的设置及数据文件的存储目次
  1. # 创建主服务的配置目录和数据目录
  2. mkdir -p /usr/local/mysqlData/master/cnf
  3. mkdir -p /usr/local/mysqlData/master/data
  4. # 创建1号从服务器的配置目录和数据目录
  5. mkdir -p /usr/local/mysqlData/slave/cnf
  6. mkdir -p /usr/local/mysqlData/slave/data
  7. # 创建2号从服务器的配置目录和数据目录
  8. mkdir -p /usr/local/mysqlData/slave2/cnf
  9. mkdir -p /usr/local/mysqlData/slave2/data
复制代码
创建两个从服务器的设置是由于MySQL设置的server-id不能重复

2.设置主服务器的设置文件
  1. vim /usr/local/mysqlData/master/cnf/mysql.cnf
复制代码
设置文件如下
  1. [mysqld]
  2. ## 设置server_id,注意要唯一
  3. server-id=1
  4. ## 开启binlog
  5. log-bin=mysql-bin
  6. ## binlog缓存
  7. binlog_cache_size=1M
  8. ## binlog格式(mixed、statement、row,默认格式是statement)
  9. binlog_format=mixed
  10. ##设置字符编码为utf8mb4
  11. character-set-server = utf8mb4
  12. collation-server = utf8mb4_unicode_ci
  13. init_connect='SET NAMES utf8mb4'
  14. [client]
  15. default-character-set = utf8mb4
  16. [mysql]
  17. default-character-set = utf8mb4
复制代码
3.设置从服务器的设置文件
  1. # 1号从服务器
  2. vim /usr/local/mysqlData/slave/cnf/mysql.cnf
  3. # 2号从服务器
  4. vim /usr/local/mysqlData/slave2/cnf/mysql.cnf
复制代码
设置文件如下(1号的server-id设置为2,2号的server-id设置为3,不重复即可)
  1. [mysqld]
  2. ## 设置server_id,注意要唯一
  3. server-id=2
  4. ## 开启binlog
  5. log-bin=mysql-slave-bin
  6. ## relay_log配置中继日志
  7. relay_log=edu-mysql-relay-bin
  8. ## 如果需要同步函数或者存储过程
  9. log_bin_trust_function_creators=true
  10. ## binlog缓存
  11. binlog_cache_size=1M
  12. ## binlog格式(mixed、statement、row,默认格式是statement)
  13. binlog_format=mixed
  14. ##设置字符编码为utf8mb4
  15. character-set-server = utf8mb4
  16. collation-server = utf8mb4_unicode_ci
  17. init_connect='SET NAMES utf8mb4'
  18. slave_skip_errors=1062
  19. [client]
  20. default-character-set = utf8mb4
  21. [mysql]
  22. default-character-set = utf8mb4
复制代码
4.创建主从MySQL镜像
  1. # 主服务器实例化
  2. docker run -itd -p 3307:3306 --name master -v /usr/local/mysqlData/master/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8
  3. # 1号从服务器实例化
  4. docker run -itd -p 3308:3306 --name slaver -v /usr/local/mysqlData/slave/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/slave/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8
  5. # 2号从服务器实例化
  6. docker run -itd -p 3309:3306 --name slaver2 -v /usr/local/mysqlData/slave2/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/slave2/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8
复制代码
参数表明
-p 指定容器袒露的端口,宿主机(物理机)端口: docker实例端口
-p 3307:3306 把物理机的3307端口给实例的端口3306端口举行映射
-v 给容器挂载存储卷,挂载到容器的某个目次
-v /usr/local/mysqlData/master/cnf:/etc/mysql/conf.d 把刚创建的设置文件夹映射成实例的/etc/mysql/conf.d
-v /usr/local/mysqlData/master/data:/var/lib/mysql 数据文件夹的映射
-e 指定环境变量,容器中可以使用该环境变量
-e MYSQL_ROOT_PASSWORD=123456 设置MySQL的root账号密码为123456
5.检察已创建的实例
  1. docker ps -a
复制代码

6.创建mysql毗连用户
  1. # 创建用户 reader设置密码为reader
  2. CREATE USER reader IDENTIFIED BY 'reader';
  3. # 给予reader同步权限
  4. GRANT REPLICATION SLAVE ON *.* to 'reader'@'%';
  5. FLUSH PRIVILEGES;
复制代码
注解:别的的用户,长途毗连的自行设置
7.获取主服务器的毗连信息
  1. # MySQL的连接信息
  2. SHOW MASTER STATUS;
  3. #新开连接 获取master实例的在docker的地址
  4. docker inspect --format='{{.NetworkSettings.IPAddress}}' master
复制代码
从服务器毗连主服务器(两台从服务器均是以下操作)
  1. # 配置连接的参数
  2. change master to master_host='172.17.0.2',master_user='reader',master_password='reader',master_log_file='mysql-bin.000003',master_log_pos=2259;
  3. # 启动同步
  4. start slave;
  5. # 查看是否成功
  6. show slave status\G
  7. # 两项都为Yes时代表成功。
  8. # Slave_IO_Running: Yes
  9. # Slave_SQL_Running: Yes
  10. # 失败需要使用停止连接后检查其他账号密码,地址,pos等参数
  11. # 停止连接,如果一次成功无需使用该命令
  12. stop slave;
复制代码


三.效果

主服务器实验下令
  1. SHOW SLAVE HOSTS;
复制代码

能从主服务器查询到两台从服务器的ID以及端口。完成MySQL摆设。
到此这篇关于Docker摆设MySQL8集群(一主二从)的实现步调的文章就先容到这了,更多相关Docker摆设MySQL8集群内容请搜索脚本之家从前的文章或继续欣赏下面的相关文章盼望大家以后多多支持脚本之家!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作