mysql主从同步历史数据,mysql 主从同步配置【学习记录】

(本文的两个mysql数据库均在单机配置)

1. 首先准备两个mysql服务端文件,目录分别为:

D:\software\mysql-5.7.26-winx64-master

D:\software\mysql-5.7.26-winx64-slave

2. 配置master的my.ini文件(如果没有则新建):

[mysqld]

port = 3306

basedir = D:\\software\\mysql-5.7.26-winx64-master

datadir = D:\\software\\mysql-5.7.26-winx64-master\\data

#生成记录文件位置,同步必须,请勿手动删除,格式位置为 :log-bin=mysql安装路径/log/mysql-bin.log

log-bin=D:\\software\\mysql-5.7.26-winx64-master\\log\\bin-log

#服务ID,用于区分服务,范围1~2^32-1,需要与从服务器不同

server_id= 1

#MySQL 磁盘写入策略以及数据安全性

#每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去

innodb_flush_log_at_trx_commit=1

#当sync_binlog =N (N>0) ,MySQL 在每写 N次 二进制日志binary log时,会使用fdatasync()函数将它的写二进制日志binary log同步到磁盘中去。

#sync_binlog 的默认值是0,像操作系统刷其他文件的机制一样,MySQL不会同步到磁盘中去而是依赖操作系统来刷新binary log。

sync_binlog= 1

#此处添加需要同步的数据库名称,那么它会只接收这个数据库的信息,多个数据库需同步按照此格式另写几行即可

#这里同步数据有两种思路,一种是主服务器只发从库需要的,在主库指定;一种是主服务器把所有数据同步过来,从库按需过滤接收

#为了让配置更详细些,此处配置了从库过滤接收的配置

binlog-do-db=test

#mysql复制模式,三种:SBR(基于sql语句复制),RBR(基于行的复制),MBR(混合模式复制)

#混合模式复制

binlog_format=MIXED

#binlog过期清理时间

expire_logs_days=7

#binlog每个日志文件大小

max_binlog_size=20M

3. 配置slave的my.ini文件:

[mysqld]

port = 3306

basedir = D:\\software\\mysql-5.7.26-winx64-slave

datadir = D:\\software\\mysql-5.7.26-winx64-slave\\data

#生成记录文件位置,同步必须,请勿手动删除,格式位置为 :log-bin=mysql安装路径/log/mysql-bin.log

log-bin=D:\\software\\mysql-5.7.26-winx64-slave\\log\\bin-log

#服务ID,用于区分服务,范围1~2^32-1,需要与从服务器不同

server_id= 2

#MySQL 磁盘写入策略以及数据安全性

#每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去

innodb_flush_log_at_trx_commit=1

#当sync_binlog =N (N>0) ,MySQL 在每写 N次 二进制日志binary log时,会使用fdatasync()函数将它的写二进制日志binary log同步到磁盘中去。

#sync_binlog 的默认值是0,像操作系统刷其他文件的机制一样,MySQL不会同步到磁盘中去而是依赖操作系统来刷新binary log。

sync_binlog= 1

#此处添加需要同步的数据库名称,那么它会只接收这个数据库的信息,多个数据库需同步按照此格式另写几行即可

#这里同步数据有两种思路,一种是主服务器只发从库需要的,在主库指定;一种是主服务器把所有数据同步过来,从库按需过滤接收

#为了让配置更详细些,此处配置了从库过滤接收的配置

replicate-do-db=test

#mysql复制模式,三种:SBR(基于sql语句复制),RBR(基于行的复制),MBR(混合模式复制)

#混合模式复制

binlog_format=MIXED

#binlog过期清理时间

expire_logs_days=7

#binlog每个日志文件大小

max_binlog_size=20M

注:两者的区别之处主要在于:

server_id需要填写不同值;

主库配置为:binlog-do-db=test

从库配置为:replicate-do-db=hcxs

4. 创建服务(同时指定使用自己的my.ini文件):

创建主库服务:mysqld --install MySQL_M --defaults-file="D:\software\mysql-5.7.26-winx64-master\my.ini"

初始化主库:mysqld --initialize-insecure --user=mysql

从库服务:mysqld --install MySQL_S --defaults-file="D:\software\mysql-5.7.26-winx64-slave\my.ini"

初始化从库:mysqld --initialize-insecure --user=mysql

5. 启动服务:

分别启动主从数据库服务:net start MySQL_M、net start MySQL_S

6. 默认密码为空,可以从cmd登录mysql后修改(mysql -uroot -p),也可以通过navicat登录后修改:

修改语句为:set password = password('123456'); flush privileges;

7. 在主库创建并授权新账号,用于从库使用该账号拉取binlog(示例创建的user=slave,password=123456):

grant replication slave, replication client on *.* to slave@'192.168.1.128' identified by "123456";

flush privileges;

8. 在从库执行命令,指定主库信息:

CHANGE MASTER TO

MASTER_HOST='127.0.0.1',

MASTER_USER='slave',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='bin-log.000002',

MASTER_LOG_POS=1392;

其中MASTER_LOG_FILE和MASTER_LOG_POS的值来源于主库中执行的“show master status”命令的结果:(一定是要在主库中执行)

13c069aec893912cc42750917f5df262.png

执行完之后,在从库执行“show master status”命令,如果结果中的 Slave_IO_Running: Yes  且  Slave_SQL_Running: Yes,则代表主从配置已经成功!!

62cb3e5d497428750137f38a4976a2ee.png

至此,mysql主从同步配置就全部完成!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值