欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Win7之MySQL主从设置即Master

程序员文章站 2022-05-26 08:35:44
...

在公司工作之余看了MySQL的Master-Slave设置,大致的意思和流程已然懂了,但从未实践过。今天有时间实践一下,手头有两台Win7机器,就凑合着用吧!! 首先设定是关系A为Master,B为Slave.(两台机器的Mysql都是5.0,但不同) 设置A 的my.ini server-id = 1log-

在公司工作之余看了MySQL的Master-Slave设置,大致的意思和流程已然懂了,但从未实践过。今天有时间实践一下,手头有两台Win7机器,就凑合着用吧!!

首先设定是关系A为Master,B为Slave.(两台机器的Mysql都是5.0+,但不同)

设置A 的my.ini

server-id = 1
log-bin=mysql-bin
binlog_do_db=test1
binlog_ignore_db=mysql
innodb_flush_log_at_trx_commit=1
sync_binlog=1
binlog_checksum=none

说明:

server-id = 1 #机器ID
log-bin=mysql-bin #开启二进制日志
binlog_do_db=test1 #要同步的数据库
binlog_ignore_db=mysql #忽略mysql数据库
sync_binlog=1 #及时刷新写入二进制日志

binlog_checksum=none #版本不同且A大于5.6所以要设置一下

在A上创建test1数据库 和tab表

在Master上创建slave用户

grant all privileges on *.* to slave@'%' identified by 'slave';

这是个超级用户啊,哈哈

A即Master基本配置完毕

开始配置B-Slave

设置B的my.ini

log-bin=mysql-bin
binlog_do_db=test1
binlog_ignore_db=mysql
说明同上

并在B上创建和A完全相同的test1数据库 和tab表

至此配置都已完成,下面开始寻找要同步的二进制日志的同步点

在A输入

mysql>show master status\G;
*************************** 1. row ***************************
             File: mysql-bin.000053
         Position: 606
     Binlog_Do_DB: test1
 Binlog_Ignore_DB: mysql
Executed_Gtid_Set:
即test1数据库的二进制日志是mysql-bin.000053 位置是606

在B上输入

change master to master_host='A的ip',master_user='slave',master_password='slave',master_log_file='mysql-bin.000053',master_log_pos=606;
mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.209.78.13
                  Master_User: slave
                  Master_Port: 3306
                Connect_Retry: 30
              Master_Log_File: mysql-bin.000053
          Read_Master_Log_Pos: 333
               Relay_Log_File: Lee-PC-relay-bin.000002
                Relay_Log_Pos: 492
        Relay_Master_Log_File: mysql-bin.000053
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: test1
          Replicate_Ignore_DB: mysql
           Replicate_Do_Table:

如果看到了
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
说明你成功了。

那就赶紧测试一下吧。

在A上insert一条数据,看看B上传过来了没

教程至此完毕

说明:若在B上show slave status\G;时出现connecting to master时 原因可能是

  1. 密码错误
  2. A的3306端口不通
  3. 等一切B机器连不上A机器的问题