Mysql主从复制

一、首要工作

主服务器:192.168.0.124(mysql版本5.5.47)

从服务器:192.168.0.114(mysql版本5.5.53)

主从服务器mysql版本尽量一样;

库名要一样;

在第一次主从复制前要保证表的结构一样,表中数据一样;

主服务器
主服务器

从服务器
从服务器

二、主数据库配置

My.ini 中增加:(不需要同步的数据库可忽略不写,增加保存后重启MySQL服务)

server-id=1 #本机数据库ID 标示(主库和从库需要不一致)
log-bin=mysql-bin #启用二进制日志
binlog-do-db=a_test_master #需要同步的数据库
binlog-ignore-db=mysql #不需要同步的数据库
binlog-ignore-db=baiyougou #不需要同步的数据库
binlog-ignore-db=cardgod #不需要同步的数据库
binlog-ignore-db=feidu1.0_member #不需要同步的数据库

配置示例
Mysql命令行:

确认 serverId是否与刚配置的一致

show variables like 'server_id';

执行示例
确认:需要同步的数据库及不用同步的数库 下图中 file 和position 在从库配置中会用到 (每次修改主服my.ini 文件 file和position 参 数都会变),如下图所示:

show master status;

执行示例

创建一个名为yangzhi的用户并分配复制的权限(其中的IP为从服务器IP,如果多台从服务器,将此命令多次执行,账号可以一样,IP不同)

grant replication slave on *.* to yangzhi@192.168.0.114 identified by "123456";

执行示例

三、从服务器配置

My.ini 中增加:(增加保存后重启MySQL服务)

server-id=2 #本机数据库ID 标示(主库和从库需要不一致)
replicate-wild-do-table=a_test_master.users #只复制a_test_master库中users表(这个是关于主库的相关日志,只是从库没有使用罢了,这个从库中必须加)
replicate-wild-ignore-table=mysql.% 忽略哪个库的哪个表

Mysql命令行:

暂停从库:

Stop slave;

配置(其中master_host是主服务器IP,master_port主服务器端口,master_user创建的那个用户的用户名,master_password创建的那个用户的密码,master_log_file为主服务器show master status显示出来的File,master_log_pos为主服务器show master status显示出来的Position):

change master to master_host='192.168.0.124',master_port=3306,master_user='yangzhi',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=1970;

开启从库:

Start slave;

执行示例

四、检查是否打通(从服务器)

Show slave status;

将结果复制到记事本(取消记事本的自动换行),查看

Slave_IO_Running:Yes

Slave_SQL_Running:Yes

执行示例

五、验证

在主库中某一个表中添加一条数据
在这里插入图片描述
在从库中验证是否也新增了
在这里插入图片描述

注:如果没同步,可能是position不对,不管修改主、从服务器上的配置还是用户信息都可能导致position变化,在从服务器上重新执行一下从服务器配置命令即可(my.ini不用动);

如果Slave_IO_Running:no,并且错误为The replication receiver thread cannot start because the master has GTID_MODE = ON and this server has GTID_MODE = OFF。将下面的配置配到从数据库配置文件中即可;(附:这个错误是主库5.6并且是云RDS数据库,从库是5.7并且是在宝塔上面时出现的)

[mysqld]
#GTID:
gtid_mode=on
enforce_gtid_consistency=on

库名必须一样,操作哪个表哪个表结构与数据必须相同,

从库中可以不是全部表,在配置从库时,添加需要操作的表;

  • 25
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值