• mysql双主配置


    MySQL主主互备结构是基于mysql增量日志基础上的,区别于主从复制结构.

    在主主复制结构中,两台服务器的任何一台上面的数据库存发生了改变都会同步到另一台服务器上,这个改变是基于sql语句的改变,如果删除系统数据库源文件或删除后新创建同名MYSQL表实现同步则无效。这样两台服务器互为主从,并且都能向外提供服务,这就比使用主从复制具有更好的性能.

    接下来我将使用两个相同的环境来实现这个效果:

    系统环境:CentOS6.3

    数据库: mysql-5.6.10

    安装配置mysql(略)

    1.主1 mysql配置:(192.168.7.201)

    删除之前遗留bin日志

    # rm -rf /usr/local/mysql/log/bin*

    修改mysql配置文件:

    # vi /etc/my.cnf

    添加:

    -----------------

    # Replication Master Server 1

    # bin日志路径

    log-bin = /usr/local/mysql/log/bin.log

    # 服务器ID号

    server-id = 1

    # 忽略mysql数据库复制

    binlog-ignore-db=mysql

    # 每次增长2

    auto-increment-increment = 2

    # 设置自动增长的字段的偏移量,即初始值为2

    auto-increment-offset = 1

    ------------

    # mysql -u root -p123456

    在主1上为主2添加同步帐号

    > grant replication slave on *.* to 'slave'@'192.168.7.249' identified by '123456';

    将主1的数据库表全部备份,并发送到主2服务器上。

    # /usr/local/mysql/bin/mysqldump -u root -p123456 --opt --skip-lock-tables  --flush-logs  --all-database > /root/allbak.sql

    # cd ~

    # scp allbak.sql root@192.168.7.249:/root

    重启服务

    # service mysqld restart

    # mysql -u root -p123456;

    配置连接到主2服务器(注意这步一定要在主2添加账户后执行)

    > stop slave;

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

    > start slave;

    2.主2 mysql配置(192.168.7.249)

    删除之前遗留bin日志

    # rm -rf /usr/local/mysql/log/bin*

    修改mysql配置文件:

    # vi /etc/my.cnf

    添加:

    --------------------

    # Replication Master Server 2

    # bin日志路径

    log-bin = /usr/local/mysql/log/bin.log

    server-id=2

    # 忽略mysql数据库复制

    replicate-ignore-db=mysql

    # 每次增长2

    auto-increment-increment = 2

    # 设置自动增长的字段的偏移量,即初始值为2

    auto-increment-offset = 2

    ---------------------

    # mysql -u root -p123456

    在主2上为主1添加同步帐号

    > grant replication slave on *.* to 'slave'@'192.168.7.201' identified by '123456';

    恢复主1的数据库到主2

    #/usr/local/mysql/bin/mysql -u root -p123456 < /root/allbak.sql

    重启服务

    # service mysqld restart

    # mysql -u root -p123456;

    配置连接到主1服务器

    > stop slave;

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

    > start slave;

    最后分别登陆两台服务器mysql后台查看主主备份连接状态

    # mysql -u root -p123456;

    > show slave statusG;

    搜索这三行,如下则主主互备配置成功

    Slave_IO_State: Waiting for master to send event

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    当主1的数据库增加,删除,改变数据时,主2也会同步更新。

    当主2的数据库增加,删除,改变数据时,主1也会同步更新。

    这样就可以配合keepalived实现数据库双机热备+数据同步互备,大大提高了MYSQL的可靠性和安全性

  • 相关阅读:
    mysql删选某列重复值
    apache伪静态
    nginx的伪静态
    如何对数据库进行优化
    ci的优缺点
    memcache状态说明
    sql中扩展插入语法
    若给个 个人收款的二维码,如何测试?
    安装自动化测试工具selenium
    PHP 线上项目 无法操作
  • 原文地址:https://www.cnblogs.com/php5/p/4347927.html
Copyright © 2020-2023  润新知