zoukankan      html  css  js  c++  java
  • CentOSserverMysql主从复制集群结构

            在配置Mysql数据库主从复制集群时间,以确保:

                 1.主从server操作系统版本号和位数一致。

                 2.Mysql版本号一致。

             为了保证稳定性,最好server操作系统和Mysql数据库环境一致。


            CentOSserver上Mysql的安装方法能够參见博客:

            http://blog.csdn.net/jhq0113/article/details/43812895

            

             server配置:

             Master:192.168.1.18

             Slave:192.168.1.16


             Master(192.168.1.18)server:

             1.编辑/etc/my.cnf

             [root@jhq0229 ~]# vim /etc/my.cnf
            

            2.配置

           

    [mysqld]
    datadir=/data/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    
    #主从复制配置
    innodb_flush_log_at_trx_commit=1
    sync_binlog=1
    #须要备份的数据库
    binlog-do-db=orders
    #不须要备份的数据库
    binlog-ignore-db=mysql
    
    #启动二进制文件
    log-bin=mysql-bin
    
    #服务器ID
    server-id=1
    
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid


            若没有配置binlog-do-db和binlog_ignore_db,表示备份所有数据库。

            3.重新启动Mysqld服务

            [root@jhq0229 ~]# service mysqld restart

     

            4.为从Mysql创建用户

             登录

            [root@jhq0229 ~]# mysql -uroot -p
            Enter password:


            创建用户

            mysql> create user 'mastj'@'192.168.1.16' identified by '123456';

           

            配置主从复制权限

            mysql> grant replication slave on *.* to 'mastj'@'192.168.1.16' identified by '123456';


            若orders数据库中已经有数据,还须要:

            锁定数据库

            mysql> flush tables with read lock;

            将数据导入到从数据库,方法有多种。我是用Navicat复制的。复制完毕后:

             查看master状态并解锁:

    mysql> show master status;
    +------------------+----------+--------------+------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000003 |     2005 | orders       | mysql            |                   |
    +------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    
    mysql> unlock tables;

       

             Slave(192.168.1.16)server:

             1.配置服务ID

             [root@jhq0113 ~]# vim /etc/my.cnf
            

             在[mysqld]以下增加

             server-id=2

            

             重新启动Mysql服务

             [root@jhq0113 ~]# service mysqld restart


           2.配置复制

            登录mysql

           [root@jhq0113 ~]# mysql -uroot -p

          

           运行

          mysql> change master to master_host='192.168.1.18',

                    master_user='mastj',

                    master_password='123456',

                    master_port=3306,

                    master_log_file='mysql-bin.000003',

                    master_log_pos=2005,

                    master_connect_retry=10;


           參数具体解释:

          master_host:主server的IP。


          master_user:配置主server时建立的username
          master_password:用户密码
          master_port:主servermysql端口。假设未曾改动,默认就可以。

          master_log_file:日志文件名,填写查看master状态时显示的File

          master_log_pos:日志位置。填写查看master状态时显示的Position

          master_connect_retry:重连次数

          启动进程

          mysql> start slave;


          检查主从复制状态

         

    mysql> show slave statusG
    *************************** 1. row ***************************
                   Slave_IO_State: Waiting for master to send event
                      Master_Host: 192.168.1.18
                      Master_User: mastj
                      Master_Port: 3306
                    Connect_Retry: 10
                  Master_Log_File: mysql-bin.000003
              Read_Master_Log_Pos: 2369
                   Relay_Log_File: jhq0113-relay-bin.000002
                    Relay_Log_Pos: 647
            Relay_Master_Log_File: mysql-bin.000003
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
            若Slave_IO_Running和Slave_SQL_Running均为Yes。则表示连接正常。


           在这一点上是可能的测试主从复制。

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    Java 静态static关键字,main函数,对象的初始化过程,对象调用成员,单例模式的设计,静态代码块(6)
    Java面向对象(概述,构造函数,类与对象的关系,this关键字,成员、局部),匿名对象的调用,构造代码块(5)
    Java 二维数组,排序、切换顺序,查表法二进制十进制,这班查找、排序(冒泡、选择)、遍历,获取最大小值(4)
    Java 语句while、do while、for循环、嵌套、for与while的区别、break continue(3)
    Java 进制转换(二进制(负),八进制,十进制,十六进制),位运算、逻辑运算(2)
    java 环境变量配置搭建(1)
    Java static的用法以及原理(06)
    java this的用法以及原理
    Termux
    Comparison-of-OS-emulation-or-virtualization-apps-on-Android
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4749844.html
Copyright © 2011-2022 走看看