centos上配置mysql 主从复制

  1. 安装mysql

  2. 建立复制账户

    在主mysql 上建立复制权限的账户

    mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';

  3. 配置主mysql

    1. 启用主mysql上的二进制日志,修改配置文件/etc/my.cnf,添加如下参数

      server-id = 1  #主机标示,整数
      log-bin= /var/log/mysql/master-bin #二进制日志位置

      log-bin-index=/var/log/mysql/master-bin.index #二进制索引日志位置   

                binlog-do-db=test #可选 需要备份数据 多个写多行

            binlog-ignore-db=mysql #可选 不需要备份的数据库,多个写多行

            sync_binlog=1 #同步磁盘写二进制日志 防止断电发生

            innodb_support_xa=1 #支持分布式事务,解决binlog_format 为statement 时日志同步问题 ,如果binlog_format 为ROW则不存在这些问题了

 4.配置slavemysql

        a.修改slave /etc/my.cnf配置文件

            server-id=2

            relay-log=/var/log/mysql/slave-relay-bin #中继日志文件

            relay-log-index=/var/log/mysql/slave-relay-bin.index #中继日志索引文件


            #注意从mysql 5.5开始 下面这些选项不能在my.cnf中配置 否则会报错,只能用CHANGE MASTER TO 语句设置

            #master-host     =192.168.1.100 #主mysql IP
            #master-user     = slave
            #master-pass    =123456
            #master-port     =3306
            #master-connect-retry=60 # 可选 如果从服务器发现主服务器断掉,重新连接的时间差(秒)

            #replicate-do-db =test # 可选 只复制某个库
            #replicate-ignore-db=mysql # 可选 不复制某个库

5.重启配置好的mysql服务器


6.启动salve从服务器上的复制进程

        在从服务器上执行下面的语句,用你的系统的实际值替换选项值
        mysql> CHANGE MASTER TO

            ->     MASTER_HOST='master_host_name',

            ->     MASTER_USER='replication_user_name',

            ->     MASTER_PASSWORD='replication_password',

            ->     MASTER_PORT=3306;

            mysql>start slave;    //启动从服务器复制功能

7、验证

在主机A中,mysql>show master status\G;
在从机B中,mysql>show slave status\G;
能看到大致这些内容
File: mysql-bin.000001
Position: 1374
Binlog_Do_DB: test
Binlog_Ignore_DB: mysql
可以在主机A中,做一些INSERT, UPDATE, DELETE 操作,看看主机B中,是否已经被修改



            


你可能感兴趣的:(centos上配置mysql 主从复制)