zoukankan      html  css  js  c++  java
  • mysql 主从同步 M-S 搭建

    主机:

    [root@ygy130 ~]# mysql -usystem -p123456

    mysql> create database HA;

    mysql> use HA;

    mysql> create table T1(id int,name varchar(20));

    service mysqld stop     停库锁表

    配置my.cnf:

    vim /etc/my.cnf

    vim /etc/my.cnf

    log-bin=mysql-bin-master  #启用二进制日志

    server-id       = 1   #本机数据库ID 标示

    binlog-do-db=HA #可以被从服务器复制的库。二进制需要同步的数据库名

    binlog-ignore-db=mysql  #不可以被从服务器复制的库

    重启mysql:

    service mysqld restart

    [root@ygy130 ~]# mysql -usystem -p123456

    授权:

    mysql> grant replication slave on *.* to slave@192.168.31.131 identified by "123456";

    mysql> flush privileges;

    查看状态信息:
    mysql> show master status;

    mysql> show binlog eventsG

    同步前要保证两台机器数据一致。

    [root@ygy130 ~]# mysqldump -usystem -p123456 HA >HA.sql

    [root@ygy130 ~]# scp HA.sql root@192.168.31.131:/root/

    从机:

    [root@yu131 ~]# mysql -usystem -p123456

    mysql> create database HA;

    mysql -usystem -p123456 HA<HA.sql

    修改从服务器配置文件:

    [root@yu131 ~]# vim /etc/my.cnf
    server-id = 2

    重启mysqld

    [root@yu131 ~]# service mysqld restart

    [root@yu131 ~]# mysql -usystem -p123456

    mysql>change master to master_host='192.168.31.130',master_user='slave',master_password='123456';

    mysql> start slave; 

    mysql> show slave statusG  查看状态

    Slave_IO_Running :一个负责与主机的io通信
    Slave_SQL_Running:负责自己的slave mysql进程
    再到主服务器上查看状态:
    mysql> show processlist G

    主机:

    mysql> insert into T1 values(1,'ccc');
    Query OK, 1 row affected (0.01 sec)

    mysql> select * from T1;
    +------+------+
    | id | name |
    +------+------+
    | 1 | qqq |
    | 1 | ccc |
    +------+------+
    2 rows in set (0.00 sec)

     从机:

    mysql> select * from T1;
    +------+------+
    | id | name |
    +------+------+
    | 1 | qqq |
    | 1 | ccc |

    如果遇到主从不同步,看一下主从bin-log的位置,然后再同步。

    从服务器执行MySQL命令下:

    mysql> slave stop;             #先停止slave服务

    mysql> change master to master_log_file='mysqllog.000004' ,master_log_pos=106;

    #根据上面主服务器的show master status的结果,进行从服务器的二进制数据库记录回归,达到同步的效果

    mysql>slave start;                      #启动从服务器同步服务

    mysql> show slave statusG;          #用show slave statusG;看一下从服务器的同步情况

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    如果都是yes,那代表已经在同步

  • 相关阅读:
    SQL SERVER 运维日记-数据库备份
    SQL调优日记--并行等待的原理和问题排查
    数据库服务器构建和部署最佳实践
    实战案例--TEMPDB暴涨
    关于TRIM的优化技巧
    SQL SERVER 的前世今生--各版本功能对比
    Sleeping会话导致阻塞原理(下)
    SQL SERVER运维日记--收缩数据库
    SQLSERVER 运维日记-数据库状态
    EXPERT FOR SQL SERVER诊断系列--索引
  • 原文地址:https://www.cnblogs.com/yuguangyuan/p/5985145.html
Copyright © 2011-2022 走看看