MySQL主从复制,基于Docker

  1. 首先基于docker拉取mysql镜像

    docker pull mysql:5.7
    
  2. 使用下载好的镜像,启动主从两个容器

    docker run -p 3339:3306 --name mymysql –e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7  # 主
    
    docker run -p 3340:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7  # 从
    
  3. 配置主从

    docker exec -it 627a2368c865 /bin/bash # 进入容器,627a2368c865是容器的id,而mysql-master是容器的名称
    
    apt-get update
    
    apt-get install vim # 在容器中手动安装 vim
    
  4. vi my.cnf,进入/etc/mysql目录下,对my.cnf进行编辑

    [mysqld]
    server-id = 100
    log-bin = mysql-bin
    
    ------------------------------------------
    
    service mysql restart   		# 重启mysql
    docker start mysql-master 	# 启动容器
    
  5. 创建主从所需权限用户

    CREATE USER 'slave'@'%' IDENTIFIED BY '123456'  # 创建用户
    GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%'  # 设置权限
    
  6. 配置从数据库

[mysqld]
server-id = 101

------------------------------------------

service mysql restart   		# 重启mysql
docker start mysql-master 	# 启动容器

------------------------------------------
# 这3个是 一行
change master to master_host='172.17.0.2', master_user='slave', 
master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', 
master_log_pos= 254, master_connect_retry=30;
  • 这里需要注意的是,有两个参数来自于主库,可以通过主库中运行show master status 查看得到,分别是master_log_file以及master_log_pos

  • 最终在从库执行 show slave status 查看从库状态即可。看到IO与SQL线程处于活跃状态即为正常。

    在这里插入图片描述

发布了125 篇原创文章 · 获赞 260 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/weixin_44685869/article/details/105546481
今日推荐