文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

docker下MySQL的主从复制

2016-02-20 17:03

关注

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


安装成功后 vim my.cnf


对文件进行编辑

[mysqld]
## 同一局域网内注意要唯一
server-id=100
## 开启二进制日志功能
log-bin=mysql-bin


配置完成后需要重新启动容器 service mysql restart
重启mysql服务时会使得docker容器停止,我们还需要docker start master启动容器。
重启之后 再次进入容器
mysql -uroot -p123456
进入数据库服务

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所组织容器
cd etc/mysql 切换到 MySQL所在的路径

vi my.cnf 对my.cnf 进行编辑 可能会报错 原因是 没有 容器本身没有安装 vim

安装 vim

apt-get update

apt-get install vim


安装成功后 vim my.cnf


对文件进行编辑

[mysqld]
## 设置server_id,注意要唯一
server-id=101
## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin
## relay_log配置中继日志
relay_log=edu-mysql-relay-bin


配置完成后需要重新启动容器 service mysql restart
重启mysql服务时会使得docker容器停止,我们还需要docker start master启动容器。
重启之后 再次进入容器
mysql -uroot -p123456

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>show slave status G; 查看主从同步状态
Slave_IO_Running:NO
Slave_SQL_Running:NO
还未开启主从复制状态

mysql> start slave;

再次查看状态
mysql>show slave status G;

Slave_IO_Running:YES
Slave_SQL_Running:YES

即为开启主从复制 成功

若依然为NO 可尝试 先exit 退出MySQL服务 然后 mysql -uslave -p123456 -h127.17.0.2
先使用master中设置的,用于主从同步的用户
启动mysql服务后 exit
再次 使用默认用户 mysql -uroot -p123456 启动mysql服务

mysql>stop slave;
mysql>start slave;
mysql>show slave status G; 再次查看状态

俩个全为YES 主从复制即为成功

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯