• 技术文章 >数据库 >mysql教程

    MySql主从复制配置示例_MySQL

    2016-05-30 17:11:29原创554
    最近研究mysql,从oracle官网下了一个最新的5.6的mysql,压缩版的。今天尝试一下Mysql的复制功能,花了好久才整出来,把心得分享出来。

    用的是我们开发用的库,部署在测试环境,测试环境的mysql版本居然是5.1的。

    1.主服务器配置

    cd /etc,找到my.cnf,然后再这个配置文件加上复制要用的配置

    server-id       = 1
    log-bin=mysql-bin
    binlog-do-db=wx

    主服务器需要一个独一无二的server id,log-bin表示启用二进制日志,binlog-do-db表示选择记录日志的数据库

    2.从机配置

    打开my.ini,加上和服务器类似的配置

    server-id=2
    log-bin=mysql-bin 
    replicate-do-db=wx

    3.将主机上的wx数据库拷给从机。这步一定要执行,不然后面一定会报错。我就是忽略了这一步,导致试了好几次都没有成功!当然,这一步可以用任何方法做,用工具,用mysqldump后从机执行都可以。

    4.主机上建复制账号

    主机的mysql命令行下执行如下命令,建一个用来复制的账号,和密码

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

    然后查主机的状态

    mysql> show master status\G
    *************************** 1. row ***************************
                File: mysql-bin.000003
            Position: 256
        Binlog_Do_DB: wx
    Binlog_Ignore_DB: 
    1 row in set (0.00 sec)

    Position和File都是后面有用的

    5.从机关联主机操作

    从机上执行关联主机的命令,并重启从机。

    change master to  
    master_host = '192.168.146.120',  
    master_user = 'replication',  
    master_password = '123',  
    master_log_file = 'mysql-bin.000003',  
    master_log_pos = 256;  
    start slave; 

    6.验证操作

    主机上wx库找张表,插入一条语句,从机立刻复制过来。

    查看从机状态。

    mysql> show slave status\G
    *************************** 1. row ***************************
                   Slave_IO_State: Waiting for master to send event
                      Master_Host: 192.168.146.120
                      Master_User: replication
                      Master_Port: 3306
                    Connect_Retry: 60
                  Master_Log_File: mysql-bin.000003
              Read_Master_Log_Pos: 708
                   Relay_Log_File: CDYJY-LVSHENG1-relay-bin.000004
                    Relay_Log_Pos: 265
            Relay_Master_Log_File: mysql-bin.000003
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
                  Replicate_Do_DB: wx
              Replicate_Ignore_DB:
               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: 708
                  Relay_Log_Space: 588
                  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: 1
                      Master_UUID:
                 Master_Info_File: D:\DevelopTools\DB\mysql-5.6.26-winx64\data\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)
    
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:主从 示例
    上一篇:windows下如何安装和启动MySQL_MySQL 下一篇:MySql存储过程与函数详解_MySQL
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 怎么查看mysql是多少位• mysql怎么将字符串转为datetime类型• mysql怎么修改字段的内容• mysql有联合索引吗• mysql怎么取字符串前几位
    1/1

    PHP中文网