一台虚拟机搭建mysql5.7主从复制

mysql5.7主库部署在10.0.31.41虚拟机上,从库部署在虚机的docker容器上

在centos7上部署mysql5.7自己解决

先配置一个账号权限用来做同步

grant replication slave on *.* to 'slave'@'%' identified by '123456';

查看账号权限

select user,host from mysql.user;

修改主数据库服务器的配置文件 my.cnf,开启 BINLOG,并设置 server-id的值

log-bin=mysql-bin

binlog_format=ROW

server-id=1

进入主库记下当前的二进制日志名和偏移量值(mysql-bin.000001,926728609)

mysql -uroot -p
show master status;

#+------------------+-----------+--------------+------------------+-------------------+

#| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

#+------------------+-----------+--------------+------------------+-------------------+

#| mysql-bin.000001 | 926728609 | | | |

#+------------------+-----------+--------------+------------------+-------------------+

#1 row in set (0.00 sec)

#从库使用docker启动一个 ,容器内部端口3306映射到宿主机3308

docker run -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7

#修改从数据库的配置文件 mysqld.cnf,增加 server-id参数,需要先复制主库my.cnf,并修改名字

cp my.cnf mysqld.cnf
vim mysqld.cnf

[mysqld]

pid-file = /var/run/mysqld/mysqld.pid

socket = /var/run/mysqld/mysqld.sock

datadir = /var/lib/mysql

lower_case_table_names=1

server_id = 3

#复制mysql配置文件到容器里 ,391e26dfcaf根据容器ID变换

docker cp mysqld.cnf 391e26dfcaf:/etc/mysql/mysql.conf.d

docker exec -it 391e26dfcaf bash

#设置账号权限,刷新权限或者重启mysql

mysql -uroot -p123456
grant select,insert,update,delete on *.* to 'test'@'%' identified by '123456';
flush privileges;

#授权,对从数据库服务器做相应设置,指定复制使用的用户,主数据库服务器的IP、端口以及开始执行复制的日志文件和位置

CHANGE MASTER TO

  MASTER_HOST='10.0.31.41',

  MASTER_PORT=3306,

  MASTER_USER='slave',

  MASTER_PASSWORD='123456',

  MASTER_LOG_FILE='mysql-bin.000001',

  MASTER_LOG_POS=926728609;

#从库上启动slave线程

start slave;

#查看slave 状态

show slave status\G;

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

#表示主从成功

#解决 Slave_SQL_Running: NO 问题(方案:数据库的备份)

#根据报错提醒,得知是主库和从库的数据不一致造成的,检查数据差距大不大

#全量备份

#先将主库的数据备份出来,然后再导入从库即可

mysqldump --all-databases -u root -p123456 -P 3306 > all.sql

#发送备份的数据库文件到容器内根目录下

docker cp all.sql 391e26dfcaf3:/

#从库停止slave

stop slave;

#导入数据库

mysql -uroot -p123456 <all.sql

start slave;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jpxiangfenle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值