MySql的主从复制 sudo docker pull MySQL:5.7 拉取MySQL的镜像文件(版本号为 5.7) sudo docker run -p 3339:3306 --name master -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 主数据库 sudo docker run -p 3340:3306 --name slave -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 从数据库
docker ps 查看当前正在运行的 容器 docker exec -it master bash 进入master容器 cd etc/mysql 切换到 MySQL所在的路径 vi my.cnf 对my.cnf 进行编辑 可能会报错 原因是 没有 容器本身没有安装 vim 安装 vim apt-get update apt-get install vim
[mysqld]
mysql> CREATE USER 'slave'@'%' IDENTIFIED BY '123456'; mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%'; 创建用来同步的用户,并且给用户添加俩个权限 用来主从库之间的同步 mysql> show master status; 查看 master的状态 记住 file 下的文件名字 Position 位置 退出 master 容器 docker exec -it slave bash 进入slave所组织容器 vi my.cnf 对my.cnf 进行编辑 可能会报错 原因是 没有 容器本身没有安装 vim 安装 vim apt-get update apt-get install vim
[mysqld]
mysql> change master to master_host='master容器的ip', master_user='master容器中创建的用于主从同步的用户', master_password='账户的密码', master_port=3306, master_log_file='master下查看的file', master_log_pos= Position文件位置, master_connect_retry=30; 执行完之后 mysql> start slave; 再次查看状态 Slave_IO_Running:YES 即为开启主从复制 成功 若依然为NO 可尝试 先exit 退出MySQL服务 然后 mysql -uslave -p123456 -h127.17.0.2 mysql>stop slave; 俩个全为YES 主从复制即为成功 |
|