• mysql集群(master-master)


    参考:

    软件:

    MySQL-server-5.6.29-1.el6.x86_64.rpm
    MySQL-client-5.6.29-1.el6.x86_64.rpm
    wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm

    操作系统:

                CentOS6.5_x64

    服务器:

                192.168.1.20  (master1)
                192.168.1.21  (master1)
     

    安装配置:

    不介绍怎么安装了,看02-02-Linux上搭建各种软件开发环境笔记
    测试只同步test库,master版本一定要>=slave版本
    mysql> SELECT VERSION();
     配置文件及解释:
    1. #######################配置master-master1#######################
    2. user=mysql
    3. log-bin=mysql-bin
    4. #指定自己编号,一个集群中id唯一
    5. server-id=1
    6. #要同步的数据库,通过二进制日志同步,所以这里提示"要记录二进制日志的数据库"
    7. binlog-do-db=test
    8. #和binlog-do-db=test对应;如果要同步多个库,这两项参数多个几个就行了.
    9. replicate-do-db=test
    10. #指定哪些库不同步,mysql库肯定不能同步,毕竟每个库上面的用户信息和参数不同
    11. binlog-ignore-db=mysql
    12. #同上面忽略记录日志的库一一对应;是不要记录日志的数据库名,多个数据库中间用逗号(,)隔开
    13. replicate-ignore-db=mysql
    14. #表示如果一个MASTER挂掉的话,另外一个马上接管
    15. log-slave-updates
    16. #跳过同步过程中sql错误
    17. slave-skip-errors=all
    18. #开启同步
    19. sync_binlog=1
    20. #自增主键,每次+2
    21. auto_increment_increment=2
    22. #自增主键,从1开始,每次+2
    23. auto_increment_offset=1
    24. #######################EOF######################################
    25. #######################配置master-master2#######################
    26. user=mysql
    27. log-bin=mysql-bin
    28. #指定自己编号,一个集群中id唯一
    29. server-id=2
    30. #要同步的数据库,通过二进制日志同步,所以这里提示"要记录二进制日志的数据库"
    31. binlog-do-db=test
    32. #和binlog-do-db=test对应;如果要同步多个库,这两项参数多个几个就行了.
    33. replicate-do-db=test
    34. #指定哪些库不同步,mysql库肯定不能同步,毕竟每个库上面的用户信息和参数不同
    35. binlog-ignore-db=mysql
    36. #同上面忽略记录日志的库一一对应;是不要记录日志的数据库名,多个数据库中间用逗号(,)隔开
    37. replicate-ignore-db=mysql
    38. #表示如果一个MASTER挂掉的话,另外一个马上接管
    39. log-slave-updates
    40. #跳过同步过程中sql错误
    41. slave-skip-errors=all
    42. #开启同步
    43. sync_binlog=1
    44. #自增主键,每次+2
    45. auto_increment_increment=2
    46. #自增主键,从1开始,每次+2
    47. auto_increment_offset=2
    48. #表示从mysql服务器启动时不启动同步线程,这就要在启动从服务器之后,手工启动同步线程,在mysql> 提示符下面运行“start slave”就可以
    49. skip-slave-start
    50. #######################EOF######################################
    重启2台MySQL服务器.
    #master1
    $ mysql -uroot -p
    mysql> grant replication slave on *.* to 'replication'@'%' identified by 'replication';    #在master1上创建一个用户用于同步
    mysql> flush privileges;
    mysql> show master status;
    mysql> show processlist;        #查看同步线程
     
    #master2
    $ mysql -uroot -p
    #master_log_file和master_log_pos的值是上一步在master上查出来的,
    mysql> change master to master_host='192.168.1.20',master_user='replication',master_password='replication',master_log_file='mysql-bin.000001',master_log_pos=406;
    mysql> start slave;
    mysql> show slave status;
    mysql> FLUSH TABLES WITH READ LOCK;
    mysql> grant replication slave on *.* to 'replication'@'%' identified by 'replication';
    mysql> flush privileges;
    mysql> show master status;
    mysql> show processlist;
     
    #测试同步数据
    ###master1
    mysql> use test;
    mysql> CREATE TABLE IF NOT EXISTS users (id integer UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,NAME varchar(100) NOT NULL UNIQUE,passwd varchar(100));
    mysql> show tables;     #此时再master2也可以看到该表
    mysql> insert into users values(1,'1','1');
    mysql> select * from users;
     
    ###master2
    mysql> show tables;
    mysql> select * from users;
    mysql> insert into users values(2,'2','2');
    mysql> select * from users;
    博采众长才能相互印证,故步自封必将粗陋浅薄!
  • 相关阅读:
    纯JS实现俄罗斯方块,打造属于你的游戏帝国
    Java 集合框架
    项目(1-2)ES32获取mpu9250传入数据库
    项目(1-1)ES32获取mpu9250数据网页交互显示
    开发(三)ESP32 硬件配置
    开发(二) ardunio批量固件上传地址
    项目(1-1)人脸识别
    海康相机开发(1) SDK安装和开发
    ARDUNIO IMU processing姿态数据可视化
    ESP8266 tcp透传AP+STA
  • 原文地址:https://www.cnblogs.com/tangwan/p/6a26fc95be535b9c2ccfc3f431351b7e.html
Copyright © 2020-2023  润新知