mysql主主互备

  1. MySql 主主互备
    1. 安装
      1. 安装
      2. 启动
      3. 随机启动
    2. 配置
      1. 主主互备

MySql 主主互备

标签(空格分隔): MySql 数据库


Ver:5.1+
CentOS 6+

需要主主互备的2台机的系统版本一致,安装的mysql版本一致。

安装

在2台机器上都安装

安装

yum install mysql mysql-server -y

启动

/etc/init.d/mysqld start

随机启动

chkconfig --list | grep mysqld
chkconfig --add mysqld
chkconfig mysqld on

配置

vim /etc/my.cnf

主主互备

参考:http://showerlee.blog.51cto.com/2047005/1187693

  1. 在第一台机器上

    • 修改配置

         [mysqld]
         datadir=/var/lib/mysql
         socket=/var/lib/mysql/mysql.sock
         user=mysql
         symbolic-links=0
         # for ha
         log-bin=/var/log/mysql/bin.log
         binlog_format=mixed
         server-id=1
         binlog-ignore-db=mysql
         # 用于自增长的id字段,防止同时增加记录的冲突
         auto-increment-increment=2
         auto-increment-offset=1
      
         [mysqld_safe]
         log-error=/var/log/mysqld.log
         pid-file=/var/run/mysqld/mysqld.pid
      

      创建必要的目录

         mkdir -p /var/log/mysql
         chown -R mysql:mysql /var/log/mysql
      
    • 导出数据 [可选,如果你没有用户数据库表,可以不用此操作]

         mysqldump -u root -proot --opt --skip-lock-tables --flush-logs --all-database > /root/allbak.sql
      
    • 把导出数据转到2号机

    • 备份账户

         grant replication slave on *.* to 'slave'@'10.34.102.%' identified by 'slave';
      
    • 重启

         service mysqld restart
      
  2. 在第二台机上

    • 修改配置

         [mysqld]
         datadir=/var/lib/mysql
         socket=/var/lib/mysql/mysql.sock
         user=mysql
         symbolic-links=0
         # for ha
         log-bin=/var/log/mysql/bin.log
         binlog_format=mixed
         server-id=2
         binlog-ignore-db=mysql
         # 用于自增长的id字段,防止同时增加记录的冲突
         auto-increment-increment=2
         auto-increment-offset=2
      
         [mysqld_safe]
         log-error=/var/log/mysqld.log
         pid-file=/var/run/mysqld/mysqld.pid
      

      创建必要的目录

         mkdir -p /var/log/mysql
         chown -R mysql:mysql /var/log/mysql
      
    • 导入 [可选]

         /usr/local/mysql/bin/mysql -u root -p123456 < /root/allbak.sql
      
    • 重启

         /etc/init.d/mysqld restart
      
    • 账户操作

         grant replication slave on *.* to 'slave'@'10.16.%' identified by 'slave';
         stop slave;
         CHANGE MASTER TO MASTER_HOST='host1', MASTER_PORT=3306, MASTER_USER='slave',  MASTER_PASSWORD='slave';
         start slave;
      
  3. 在第一台机上

      stop slave;
      change master to master_host='host2', master_user='slave',master_password='slave';
      start slave;
    
  4. 验证

      show slave status\G;
      # 搜索这三行,如下则主主互备配置成功
      Slave_IO_State: Waiting for master to send event
      Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
    
  5. 不同步后的修复

    停止数据库操作。手动同步现有数据。从现有日志开新的同步。

    http://www.jb51.net/article/27906.htm

     mysqldump -u root -proot --opt --skip-lock-tables --flush-logs uhp > /root/uhp.sql
    
     mysql -h pagediff3 -u root -proot uhp < uhp.sql
    
     flush log;
    
     show master status;
    
     stop slave;
    
     CHANGE MASTER TO MASTER_LOG_FILE='bin.000021',MASTER_LOG_POS=482149;
    
     start slave;
    

grant all on hive.* to ‘hive‘@’%’ identified by ‘hive’;
grant select on hive.* to ‘reader‘@’%’ identified by ‘reader’;
GRANT ALL ON ziyugui.* TO ‘ziyugui‘@’%’ IDENTIFIED BY ‘ziyugui’;


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com

💰

×

Help us with donation