【备战阿里】Day1-MySql 主从复制的搭建(入门)

805 阅读2分钟

1,环境准备

  1. 一台服务器
  2. 安装 docker 来模拟两台主机
  3. 两个拥有相同 MySql 版本的容器

2,第一步,创建容器

Tip:因为 docker 挂载文件会导致容器内文件是空的(因为你外部的文件就是空的),所以需要先把 MySql 的配置文件复制出来,再去挂载。

  1. 先准备好外部要挂载的主从 MySql 配置文件夹

  2. 创建容器并挂载(我这里 3306 是主,3305 是从) 3305:3306 表示将容器内部的 3306 端口映射到服务器的 3305 接口,这样外部可以通过服务器的 3305 接口访问容器内部的 MySql 服务器

docker run -p 3306:3306 --name mysql_master -v /mysql/master/mysql:/etc/mysql -e MYSQL_ROOT_PASSWORD=dg -d mysql:5.7

docker run -p 3305:3306 --name mysql_slave -v /mysql/slave/mysql:/etc/mysql -e MYSQL_ROOT_PASSWORD=dg -d mysql:5.7

  1. 查看容器是否正常运行

  2. 修改主从服务器的 MySql 配置(my.cnf)

  3. 重启两个服务器

  4. 连接主服务器配置从服务器相关

  5. 主服务器配置 授权给从服务器的指定账号 root,其中 x.x.x.x 为服务器的 ip

GRANT REPLICATION SLAVE ON *.* TO 'root'@'x.x.x.x' IDENTIFIED BY 'dg';

刷新授权

FLUSH PRIVILEGES

查看主服务器状态(参数要给从服务器使用)

SHOW MASTER STATUS

  1. 从服务器配置 配置主服务器信息
CHANGE MASTER TO
master_host = 'x.x.x.x',--主服务器 ip
master_user = 'root',--主服务器账号
master_password = 'dg',--主服务器密码
master_log_file = 'mysql-bin.000004',--主服务器日志文件标号
master_log_pos = 594,--主服务器日志偏移量
master_port = 3306;--主服务器端口号

开启从属复制

START SLAVE

确保从服务器的 IO 线程和 SQL 线程都开启

  1. 测试