您当前的位置: 首页 >  windows

MySQL一主一从复制搭建(Windows XP环境)--相同主机或不同主机

发布时间:2019-07-17 16:11:06 ,浏览量:0

MySQL一主一从复制搭建(Windows XP环境)

  搭建完成后的健康检查:

icon_rar.gif MySQL监控检查结果.zip

主库:

从库:

--- Windows XP环境下实现主从复制
192.168.1.29  Master
192.168.1.89  Slave
版本:5.6.21
mysql -h192.168.1.29 -uroot -plhr -P3306
mysql -h192.168.1.89 -uroot -plhr -P3306
步骤1: 在Windows操作系统下安装好两台主机的MySQL服务器,配置好两台主机的IP地址,实现两台计算机可以网络连通。
步骤2: 看下datadir的具体的路径。
mysql> show variables like '%datadir%';
-- E:\MySQL\mysql-advanced-5.6.21-win32\data\
步骤3: 编辑 E:\MySQL\mysql-advanced-5.6.21-win32目录下面的配置文件my.ini,添加如下信息:
[mysqld]
server_id=1
log-bin = E:\MySQL\mysql-advanced-5.6.21-win32\data\xpdblhr-bin
expire_logs_days = 10
max_binlog_size = 100M
binlog-do-db = test
binlog-do-db = lhrdb
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
binlog-ignore-db = mysql
binlog-ignore-db = sys
步骤4: 登录MySQL之后,可以执行show variables like '%log_bin%'命令来测试下log_bin是否成功开启,命令语句执行如下。
mysql> show variables like '%log_bin%';
+---------------------------------+-------------------------------------------------------------+
| Variable_name                   | Value                                                       |
+---------------------------------+-------------------------------------------------------------+
| log_bin                         | ON                                                          |
| log_bin_basename                | E:\MySQL\mysql-advanced-5.6.21-win32\data\xpdblhr-bin       |
| log_bin_index                   | E:\MySQL\mysql-advanced-5.6.21-win32\data\xpdblhr-bin.index |
| log_bin_trust_function_creators | OFF                                                         |
| log_bin_use_v1_row_events       | OFF                                                         |
| sql_log_bin                     | ON                                                          |
+---------------------------------+-------------------------------------------------------------+
步骤5: 在master上配置复制所需要的账户,这里创建一个repl的用户。
mysql> grant replication slave on *.* to repl@'%' identified by 'lhr';
mysql> flush privileges;
 
步骤6: 重启Master主机的MySQL5.6服务,然后输入show master status命令查询Master主机的信息。
mysql> show master status \G;
*************************** 1. row ***************************
             File: xpdblhr-bin.000010
         Position: 250
     Binlog_Do_DB: test,lhrdb
 Binlog_Ignore_DB: mysql,information_schema,performance_schema,mysql,sys
Executed_Gtid_Set:
步骤7: 将Master主机的test数据库备份出来,然后导入到Slave主机中去,具体执行语句如下。
mysqldump test > c:\a.txt
步骤8: 将c:\a.txt拷贝到slave主机上面去,然后执行以下操作:
mysqldump test < c:\a.txt
步骤9: 配置Slave主机的配置文件my.ini,添加如下信息:
[mysqld]
server-id = 2
log_bin=E:\MySQL\mysql-advanced-5.6.21-win32\data\xpdblhr-bin
expire_logs_days=10
max_binlog_size = 100M
replicate_do_db=test
replicate_do_db=lhrdb
replicate_ignore_db=information_schema
replicate_ignore_db=performance_schema
replicate_ignore_db=mysql
replicate_ignore_db=sys
步骤10: 重启Slave主机
步骤11: 设置Slave从机实现复制相关的信息。命令执行如下。
change master to
master_host='192.168.1.29',
master_user='repl',
master_password='lhr',
master_port=3306,
master_log_file='xpdblhr-bin.000007',
master_log_pos=120;
步骤12: 继续执行操作,显示slave从机的状况,如下所示。
mysql> start slave; 
mysql> show slave status \G;
 
-- Windows环境下主从复制测试
步骤1: 在Master主机的MySQL环境下,执行如下命令。
mysql> use test; 
mysql> create table rep_test(
    ->   data integer
    -> );  
mysql> insert into rep_test values(2);
  
步骤2: 在Slave主机的MySQL环境下,查看主机刚才添加的表和数据是否成功同步到从机上上,命令执行如下所示。
mysql> use test; 
mysql> show tables; 
mysql> use test; 
mysql> show tables;  
mysql> select *from rep_test; 
--- Windows XP环境下实现主从复制:基于同一个主机
192.168.59.10  Master  3306
192.168.59.10  Slave   3307
版本:5.6.21
mysql -h192.168.59.10 -uroot -plhr -P3306
mysql -h192.168.59.10 -uroot -plhr -P3307
步骤1: 在Windows操作系统下安装好两台主机的MySQL服务器,配置好两台主机的IP地址,实现两台计算机可以网络连通。
步骤2: 看下datadir的具体的路径。
mysql> show variables like '%datadir%';
+---------------+--------------------------------------------+
| Variable_name | Value                                      |
+---------------+--------------------------------------------+
| datadir       | E:\MySQL\mysql-advanced-5.6.21-win32\data\ |
+---------------+--------------------------------------------+
步骤3: 编辑 E:\MySQL\mysql-advanced-5.6.21-win32目录下面的配置文件my.ini,添加如下信息:
[mysqld]
port=3306 
basedir = E:\MySQL\mysql-advanced-5.6.21-win32
datadir = E:\MySQL\mysql-advanced-5.6.21-win32\data
server_id=56213306
log-bin = E:\MySQL\mysql-advanced-5.6.21-win32\data\xpdblhr-bin
expire_logs_days = 10
max_binlog_size = 100M
binlog-do-db = test
binlog-do-db = lhrdb
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
binlog-ignore-db = mysql
binlog-ignore-db = sys
步骤4: 登录MySQL之后,可以执行show variables like '%log_bin%'命令来测试下log_bin是否成功开启,命令语句执行如下。
mysql> show variables like '%log_bin%';
+---------------------------------+-------------------------------------------------------------+
| Variable_name                   | Value                                                       |
+---------------------------------+-------------------------------------------------------------+
| log_bin                         | ON                                                          |
| log_bin_basename                | E:\MySQL\mysql-advanced-5.6.21-win32\data\xpdblhr-bin       |
| log_bin_index                   | E:\MySQL\mysql-advanced-5.6.21-win32\data\xpdblhr-bin.index |
| log_bin_trust_function_creators | OFF                                                         |
| log_bin_use_v1_row_events       | OFF                                                         |
| sql_log_bin                     | ON                                                          |
+---------------------------------+-------------------------------------------------------------+
步骤5: 在master上配置复制所需要的账户,这里创建一个repl的用户。
mysql> grant replication slave on *.* to repl@'%' identified by 'lhr';
mysql> flush privileges;
 
步骤6: 重启Master主机的MySQL5.6服务,然后输入show master status命令查询Master主机的信息。
mysql> show master status \G;
*************************** 1. row ***************************
             File: xpdblhr-bin.000008
         Position: 589
     Binlog_Do_DB:
 Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
步骤7: 将Master主机的test、lhrdb数据库备份出来,然后导入到Slave主机中去,具体执行语句如下。
mysqldump -uroot -plhr -P3306 --databases test lhrdb > c:\a.txt
步骤8: 将c:\a.txt拷贝到slave主机上面去,然后执行以下操作:
mysqldump -uroot -plhr -P3307  --databases test lhrdb < c:\a.txt
步骤9: 配置Slave主机的配置文件my.ini,添加如下信息:
[mysqld]
port=3307
basedir = E:\MySQL\mysql-advanced-5.6.21-win32
datadir = E:\MySQL\mysql-advanced-5.6.21-win32\data563307
server-id = 56213307
log_bin=E:\MySQL\mysql-advanced-5.6.21-win32\data563307\xpdblhr-bin
expire_logs_days=10
max_binlog_size = 100M
replicate_do_db=test
replicate_do_db=lhrdb
replicate_ignore_db=information_schema
replicate_ignore_db=performance_schema
replicate_ignore_db=mysql
replicate_ignore_db=sys
步骤10: 重启Slave主机
步骤11: 设置Slave从机实现复制相关的信息。命令执行如下。
change master to
master_host='192.168.59.10',
master_user='repl',
master_password='lhr',
master_port=3306,
master_log_file='xpdblhr-bin.000008',
master_log_pos=589;
-- SELECT * FROM information_schema.`PROCESSLIST` a where a.USER='system user' or a.command='Binlog Dump'; 
步骤12: 继续执行操作,显示slave从机的状况,如下所示。
mysql> start slave; 
mysql> show slave status \G;
 
-- Windows环境下主从复制测试
步骤1: 在Master主机的MySQL环境下,执行如下命令。
mysql> use test; 
mysql> create table rep_test(
    ->   data integer
    -> );  
mysql> insert into rep_test values(2);
  
步骤2: 在Slave主机的MySQL环境下,查看主机刚才添加的表和数据是否成功同步到从机上上,命令执行如下所示。
mysql> use test; 
mysql> show tables; 
mysql> use test; 
mysql> show tables;  
mysql> select *from rep_test;

常用命令:

-----------------主从复制
select a.* from information_schema.GLOBAL_VARIABLES a where a.variable_name in ('server_id','server_uuid','log_bin','log_bin_basename','sql_log_bin','log_bin_index','log_slave_updates','read_only','slave_skip_errors','max_allowed_packet','slave_max_allowed_packet','auto_increment_increment','auto_increment_offset','sync_binlog','binlog_format','expire_logs_days','max_binlog_size') order by VARIABLE_NAME;
SELECT *
FROM PERFORMANCE_SCHEMA.threads a 
WHERE a.`NAME` IN ( 'thread/sql/slave_io', 'thread/sql/slave_sql' ) or a.PROCESSLIST_COMMAND='Binlog Dump' ;
SELECT * FROM information_schema.`PROCESSLIST` a where a.USER='system user' or a.command='Binlog Dump'; 
show binary logs; -- show master logs;
--主库
show slave hosts;
show master status;
--备库
show slave status;
show binlog events;
change master to
master_host='192.168.1.29',
master_user='repl',
master_password='lhr',
master_log_file='xpdblhr-bin.000007',
master_log_pos=120;
start slave;
stop slave sql_thread;
start slave sql_thread;
start slave io_thread;
show slave status \G;

MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解

安装环境

操作系统 :CentOS 6.5 

数据库版本:MySQL 5.6.27

主机A:192.168.1.1 (Master)

主机B:192.168.1.2 (Slave)

这里强调的数据库的版本,是因为MySQL在5.6之前和之后的安装方式是不一样的。 

本人在进行配置的时候,也遇到了这个坑,这里提前说明,希望大家不要采坑。

注:这里有一篇CentOS安装MySQL的文章,在这里引出,过程亲测,希望对大家有帮助:http://blog.csdn.net/xlgen157387/article/details/49964557

基本环境配置

首先,要保证防火墙对3306端口的开启,(开启方式,请参考:[http://blog.csdn.net/xlgen157387/article/details/49964557]),如果只是为了学习数据库的主从配置,可以使用service iptables stop 命令直接关闭防火墙。

然后可以在两台机子之间进行 ping操作,确保两台机器之间能够相同。

Master的配置

在Linux环境下MySQL的配置文件的位置是在 /etc/my.cnf ,在该文件下指定Master的配置如下:

log-bin=mysql-bin

server-id=2

binlog-ignore-db=information_schema

binlog-ignore-db=cluster

binlog-ignore-db=mysql

binlog-do-db=ufind_db 

这里的server-id用于标识唯一的数据库,这里设置为2,在设置从库的时候就需要设置为其他值。

binlog-ignore-db:表示同步的时候ignore的数据库 

binlog-do-db:指定需要同步的数据库

完整配置截图如下:

1、然后重启mysql:service mysqld restart

2、进入mysql:[root@VM_221_4_centos ~]# mysql -u root -p 回车,输入mysql密码进入。

3、 赋予从库权限帐号,允许用户在主库上读取日志,赋予192.168.1.2也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以。

在Master数据库命令行中输入:

 >GRANT FILE ON *.* TO 'root'@'192.168.1.2' IDENTIFIED BY 'mysql password';

 >GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.1.2' IDENTIFIED BY 'mysql password';

>FLUSH PRIVILEGES

这里使用的仍是 root 用户作为同步的时候使用到的用户,可以自己设定。

4、重启mysql,登录mysql,显示主库信息

mysql> show master status;

1

mysql> show master status;

+------------------+----------+--------------+----------------------------------+-------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB                 | Executed_Gtid_Set |

+------------------+----------+--------------+----------------------------------+-------------------+

| mysql-bin.000004 |    28125 | ufind_db     | information_schema,cluster,mysql |                   |

+------------------+----------+--------------+----------------------------------+-------------------+

1 row in set (0.00 sec)

mysql> 

这里的 File 、Position 是在配置Salve的时候要使用到的,Binlog_Do_DB表示要同步的数据库,Binlog_Ignore_DB 表示Ignore的数据库,这些都是在配置的时候进行指定的。

另外:如果执行这个步骤始终为Empty set(0.00 sec),那说明前面的my.cnf没配置对。

Slave的配置

1、从库的配置,首先也是修改配置文件:/etc/my.cnf 如下:

log-bin=mysql-bin

server-id=3

binlog-ignore-db=information_schema

binlog-ignore-db=cluster

binlog-ignore-db=mysql

replicate-do-db=ufind_db

replicate-ignore-db=mysql

log-slave-updates

slave-skip-errors=all

slave-net-timeout=60

2、这里可以看到,在MySQL5.6之后的版本中没有指定:

master-host=192.168.1.1 #Master的主机IP

master-user=root

master-password=mysql password #Master的MySQL密码

3、这也是在网上很多搜索的配置过程,他们也都指定了数据库的版本,但是并没有说出来新版本的配置这种方式是不适用的。

4、如果,你在MySQL5.6和之后的版本中配置从库的时候,设置到了上边的内容,即指定了master-host、master-user等信息的话,重启MySQL的时候就回报错,错误信息如下:

[root@VM_128_194_centos bin]# service mysqld restart

Shutting down MySQL... SUCCESS! 

Starting MySQL... ERROR! The server quit without updating PID file (/data/mysqldb/VM_128_194_centos.pid).

[root@VM_128_194_centos bin]# 

此时,查看数据库的报错信息(数据库的目录, /data/mysqldb/VM_128_194_centos.err ),可以看到:

2016-05-06 13:12:04 13345 [Note] InnoDB: Waiting for purge to start

2016-05-06 13:12:04 13345 [Note] InnoDB: 5.6.27 started; log sequence number 2850211

2016-05-06 13:12:04 13345 [ERROR] /data/home/server/mysql-5.6.27/bin/mysqld: unknown variable 'master-host=192.168.1.1'

2016-05-06 13:12:04 13345 [ERROR] Aborting

可以看出master-host 被检测数是一个未知的变量,因此会出现错误。

5、在5.6以及后续版本的配置如下:

修改完/etc/my.cnf 文件之后,重启一下MySQL(service mysqld restart)

进入Slave mysql控制台,执行:

mysql> stop slave;  #关闭Slave

mysql> change master to master_host='192.168.1.1',master_user='root',master_password='123456',master_log_file='mysql-bin.000004', master_log_pos=28125;

mysql> start slave;  #开启Slave

在这里指定Master的信息,master_log_file是在配置Master的时候的File选项, master_log_pos是在配置Master的Position 选项,这里要进行对应。

然后可以通过mysql> show slave status; 查看配置的信息:

mysql> show slave status \G;

*************************** 1. row ***************************

               Slave_IO_State: Waiting for master to send event

                  Master_Host: 192.167.1.1

                  Master_User: root

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000004

          Read_Master_Log_Pos: 28125

               Relay_Log_File: VM_128_194_centos-relay-bin.000004

                Relay_Log_Pos: 26111

        Relay_Master_Log_File: mysql-bin.000004

             Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

              Replicate_Do_DB: ufind_db

          Replicate_Ignore_DB: mysql

           Replicate_Do_Table: 

       Replicate_Ignore_Table: 

      Replicate_Wild_Do_Table: 

  Replicate_Wild_Ignore_Table: 

                   Last_Errno: 0

                   Last_Error: 

                 Skip_Counter: 0

          Exec_Master_Log_Pos: 28125

              Relay_Log_Space: 26296

              Until_Condition: None

               Until_Log_File: 

                Until_Log_Pos: 0

           Master_SSL_Allowed: No

           Master_SSL_CA_File: 

           Master_SSL_CA_Path: 

              Master_SSL_Cert: 

            Master_SSL_Cipher: 

               Master_SSL_Key: 

        Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

                Last_IO_Errno: 0

                Last_IO_Error: 

               Last_SQL_Errno: 0

               Last_SQL_Error: 

  Replicate_Ignore_Server_Ids: 

             Master_Server_Id: 2

                  Master_UUID: 8ac3066a-9680-11e5-a2ec-5254007529fd

             Master_Info_File: /data/mysqldb/master.info

                    SQL_Delay: 0

          SQL_Remaining_Delay: NULL

      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it

           Master_Retry_Count: 86400

                  Master_Bind: 

      Last_IO_Error_Timestamp: 

     Last_SQL_Error_Timestamp: 

               Master_SSL_Crl: 

           Master_SSL_Crlpath: 

           Retrieved_Gtid_Set: 

            Executed_Gtid_Set: 

                Auto_Position: 0

1 row in set (0.00 sec)

ERROR: 

No query specified

mysql> 

可以看到,已经配置成功。

添加需要同步的从库Slave

由于种种原因,测试的时候使用test库,这里我按照上述的方式,修改Master的my.cnf的配置文件,新增同步的数据库test,重启MySQL,执行Master的:show master status如下:

相应的,要修改Slave从库的信息在my.cnf 增加 replicate-do-db=test,重启Mysql,根据上述的show master status,在Slave从库中执行下边的内容:

>stop slave

>change master to master_host='192.168.1.1',master_user='root',master_password='123456',master_log_file='mysql-bin.000005', master_log_pos=120;

>start slave

然后使用:show slave status;

mysql> show slave status\G;

*************************** 1. row ***************************

               Slave_IO_State: Waiting for master to send event

                  Master_Host: 192.168.1.1

                  Master_User: root

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000005

          Read_Master_Log_Pos: 1422

               Relay_Log_File: VM_128_194_centos-relay-bin.000004

                Relay_Log_Pos: 283

        Relay_Master_Log_File: mysql-bin.000005

             Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

              Replicate_Do_DB: ufind_db,test

          Replicate_Ignore_DB: mysql

           Replicate_Do_Table: 

       Replicate_Ignore_Table: 

      Replicate_Wild_Do_Table: 

  Replicate_Wild_Ignore_Table: 

                   Last_Errno: 0

                   Last_Error: 

                 Skip_Counter: 0

          Exec_Master_Log_Pos: 1422

              Relay_Log_Space: 468

              Until_Condition: None

               Until_Log_File: 

                Until_Log_Pos: 0

           Master_SSL_Allowed: No

           Master_SSL_CA_File: 

           Master_SSL_CA_Path: 

              Master_SSL_Cert: 

            Master_SSL_Cipher: 

               Master_SSL_Key: 

        Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

                Last_IO_Errno: 0

                Last_IO_Error: 

               Last_SQL_Errno: 0

               Last_SQL_Error: 

  Replicate_Ignore_Server_Ids: 

             Master_Server_Id: 2

                  Master_UUID: 8ac3066a-9680-11e5-a2ec-5254007529fd

             Master_Info_File: /data/mysqldb/master.info

                    SQL_Delay: 0

          SQL_Remaining_Delay: NULL

      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it

           Master_Retry_Count: 86400

                  Master_Bind: 

      Last_IO_Error_Timestamp: 

     Last_SQL_Error_Timestamp: 

               Master_SSL_Crl: 

           Master_SSL_Crlpath: 

           Retrieved_Gtid_Set: 

            Executed_Gtid_Set: 

                Auto_Position: 0

1 row in set (0.00 sec)

ERROR: 

No query specified

mysql> 

已经新增加了test。

真正的测试

在主库中新增数据库表,user,观察从库变化如下:

创建数据库的时候:

è¿éåå¾çæè¿°

新增数据的时候:

è¿éåå¾çæè¿°

删除Master数据库表的时候: 

è¿éåå¾çæè¿°

配置过程,到此为止

1.MySQL Replication概述

MySQL Replication是MySQL的一个非常重要的功能,主要用于主服务器和从服务器之间的数据复制操作。

         MySQL复制是指从一个MySQL主服务器(master)将数据复制到另一台或者多台MySQL从服务器(slaves)的过程,将主数据库的DDL和DML操作通过二进制日志传递到复制服务器上,然后在服务器上对这些日志重新执行,从而使得主从服务器的数据保持同步;

         在MySQL中,复制操作时异步进行的,slaves服务器不需要持续地保持连接接收master服务器的数据。

         MySQL支持一台主服务器同时向多台从服务器进行复制操作,从服务器同时可以作为其他从服务器的主服务器,如果MySQL主服务器的访问量比较大,可以通过复制数据,然后在从服务器上进行查询操作,从而降低主服务器的访问压力,同时从服务器作为主服务器的备份,可以避免主服务器因为故障数据丢失的问题;

MySQL数据库复制操作大致可以分为三个步骤:

(1)主服务器将数据改变记录到二进制日志(binary log)中;

(2)从服务器将主服务器的binary log events 复制到它的中继日志(relay log)中;

(3)从服务器重做中继日志中的事件,将数据的改变与从服务器保持同步;

首先,主服务器会记录二进制日志,每个事务更新数据完成之前,主服务器将这些操作的信息记录在二进制日志里面,在事件写入二进制日志完成之后,主服务器通知存储引擎提交事务。

slave上面的I/O进程连接上Master,并发出日志请求,Master接收到来自Slave的I/O进程的请求之后,通过负责复制的I/O进程根据请求信息读取制定日志指定位置之后的日志信息,返回给Slave的I/O进程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息已经到Master端的bin-log文件的名称以及bin-log的位置;

Slave的I/O进程接收到信息之后,将接收到的日志内容依次的添加到Slave端的relay-log文件的最末端,并将读取到的Master端的bin-log的文件名和位置记录到master-info文件中。

Slave的SQL进程检测到relay-log中新增加了内容之后,会马上解析relay-log的内容成为Master端真实执行时候的那些可执行的内容,并在自身执行;

MySQL复制环境90%以上都是一个Master带一个或者多个Slave的架构模式。如果Master和Slave的压力不是太大的话,异步复制的延时一般都很少。尤其是Slave端的复制方式改成进程处理之后,更是减少了Slave端的延时;

提示:对于数据实时性要求不是特别严格的应用,只需要通过廉价的电脑服务器来扩展Slave的数量,将读压力分散到多台Slave的机器上面,即可解决数据库端读压力瓶颈。这在很大程度上解决了目前很多中小型网站的数据库压力瓶颈问题,甚至有些大型的网站也在使用类似的方案解决数据库的瓶颈;

2.Windows环境下的MySQL主从复制

1.复制前的准备工作

在Windows环境下,如果想要实现主从复制,需要准备操作环境。

角色

IP

操作系统

MySQL版本

Master

192.168.0.208

Windows

mysql-install-community-5.6.10.1.msi

Slave

192.168.0.206

Windows

mysql-install-community-5.6.10.1.msi

2.Windows环境下实现主从复制

准备好两台安装MySQL5.6的计算机(也可以使用VMWare虚拟机)之后,即可实现MySQL服务器主从复制备份操作;

步骤:

(1)在windows操作系统下安装好两台主机的MySQL服务器,配置好两台主机的IP地址,实现两台计算机可以网络连通;

(2)配置Master的相关配置信息,在Master主机上开启binlog日志,首先,看下datadir的具体路径;

mysql> show variables like ‘%datadir%’;

(3)此时需要打开Mysql的配置文件my.ini,添加如下代码,开启binlog功能:

[mysqld]

log_bin = “D:/MySQLlog/binlog”

expire_log_days = 10

max_binlog_size = 100M

提示:

此时我们需要在D盘下创建MySQLlog文件夹,binlog日志记录在该文件夹里面,该配置文件中其他的参数的含义如下:

expire_logs_days  表示二进制日志文件删除的天数;

max_binlog_size 表示二进制日志文件最大的大小;

(4)登陆MySQL之后,可以执行如下命令来测试log_bin是否成功开启,命令语句执行如下:

mysql > show variables like ‘%log_bin%’;

如果log_bin参数的值为ON的话,那么表示二进制日志文件已经成功开启;如果为OFF的话,那么表示二进制日志文件开启失败;

(5)在master上配置复制所需要的账户,这里创建一个repl的用户,%表示任何远程地址的repl用户都可以连接master主机,语句执行如下所示:

mysql > grant replication slave on *.* to repl@’%’ indentified by ‘123’;

mysql > flush privileges;

(6)在my.ini 配置文件中配置Master主机的相关信息,如下所示:

[mysqld]

log_bin=”D:/MySQLlog/binlog”

expire_logs_days = 10

max_binlog_size = 100M

server-id =1

binlog-do-db = test

binlog-ignore-db = mysql

这里配置语句的含义如下:

-server-id 表示服务器标识id号,master和slave主机的server-id不能一样

-binlog-do-db 表示需要复制的数据库,这里以test为数据库为例

-bin-ignore-db 表示不需要复制的数据库

(7)重启Master主机的MySQL5.6服务,然后输入show master status 命令查询Master主机的信息;

mysql > show master status \G;

(8)将Master主机的数据备份出来,然后导入到Slave主机中去,具体的执行语句如下:

C:Program Files\MySQL\MySQL Server 5.6 \bin>mysqldump -u root -p -h localhost test > c:\a.txt

将c:a.txt复制到Slave主机上面去,然后执行如下的操作:

C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqldump -u root -p -h localhost test

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    107766博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.2526s