1.Mysql主库会把所有的写操作记录在binlog日志中,并且生成log dump线程,将binlog日志传给从库的I/O线程,从库生成两个线程,一个是I/O线程,另外一个是sql线程。 主将更改操作记录到binlog里从将主的binlo
名称 Ip Port
M1 192.168.149.128 3307
M1S1 192.168.149.128 3308
docker run --name M1 -p 3307:3306 -e MYSQL_ROOT_PASSWord=123456 -d mysql:5.7
docker run --name M1S1 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
*** 一、将容器里面的配置文件复制出来,主要修改服务器的配置。
# 1.在root目录下创建一个mysqlms的目录存放从docker容器里面复制过来的配置文件。
mkdir mysqlms
docker cp M1:/etc/mysql/conf.d/docker.cnf m1.cnf
docker cp M1S1:/etc/mysql/conf.d/docker.cnf m1s1.cnf
# 2.配置主机:主机里面要记录sql 语句,以后从机会把该sql 语句偷过去
vi m1.cnf
server-id=1
log-bin=master.bin
# 3.配置从机:
vi m1s1.cnf
server-id=2
*** 二、配置文件修改后,复制到容器里面
docker cp m1.cnf M1:/etc/mysql/conf.d/docker.cnf
docker cp m1s1.cnf M1S1:/etc/mysql/conf.d/docker.cnf
*** 三、重启
docker restart M1 M1S1
7.1 进入主机,执行配置
docker exec -it M1 bash
mysql -uroot -p123456
7.2 创建账户
create user "rep"@"%" identified by "123456";
7.3 给该用户授予权限:
grant replication slave on *.* to "rep"@"%";
flush privileges
7.4 至此:M1 里面已经创建了一个用户:rep 123456 拥有所以库,所有表replication slave
尝试使用M1 里面的rep 用户登录:
8.1 配置登录
docker exec -it M1S1 bash;
mysql -u root -p123456;
8.2 从机执行
change master to master_host="127.0.0.1",master_port=3307,master_user="rep",master_password="123456",master_log_file="master.000001",master_log_pos=745;
注意:master_log_file:该文件具体叫什么名称,需要从主机里面去看看:
进入M1 里面使用root 用户登录M1,执行下面的sql:
show master status;
8.3 启动主从,查询状态 有两个yes
start slave;
show slave status G;
8.4 规范如下:
1 只能在主机里面执行DML 语句,绝对不能在【从机】里面执行DML语句【会破坏主从】
2 只在从机里面可以执行查询语句
3 主机只有一台,但是从机可以有多台
--结束END--
本文标题: Mysql主从复制搭建
本文链接: https://www.lsjlt.com/news/5220.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-16
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-14
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0