MySQL双主配置

      双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步。对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致。 这样做的好处多。 1. 可以做灾备,其中一个坏了可以切换到另一个。 2. 可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量。  对于异地热备,尤其适合灾备。废话不多说了。我们直接进入主题。 我们会主要介绍两部分内容:

主主同步配置

1.sql序列(服务器,产生序列号=id)
配置路径:/data/3306|3307/my.cnf

3306:配置

  1. #________m-m m1 start________
  2. auto_increment_increment        = 2
  3. auto_increment_offset           = 1 这里设置为1,我们创建的id就是以1.3.5
  4. log-slave-updates
  5. log-bin
  6. expire_logs_days = 7 
3307:配置

  1. auto_increment_increment        = 2
  2. auto_increment_offset           = 2 这里设置为2,我们创建的id就是以2.4.6
  3. log-slave-updates
  4. expire_logs_days = 7
  5. log-bin = /data/3307/mysql-bin
主库插入数据

  1. CREATE TABLE `test` (
  2.   `id` bigint(12) NOT NULL auto_increment COMMENT '主键',
  3.   `name` varchar(12) NOT NULL COMMENT '姓名',
  4.   PRIMARY KEY  (`id`)
  5. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;   
创建完成,我们查看结果
 以后我们主库设置的字段为1.代表1.3.5
我们将数据导入到另一台主库3307
  1. shell>mysqldump -uroot -p123456 -S /data/3307/mysql.sock -A -B --events -x --master-data=1|gzip >/opt/bak.sql.gz
将数据导入到3307
shell>gzip -d bak.sql.gz
shell>mysql -uroot -p123546 -S /data/3306/mysql.sock </opt/bak.sqk.gz
导入完成设置mast.info
CHANGE MASTER TO
MASTER_HOST='172.16.1.51',
MASTER_PORT=3307
MASTER_USER='rep',
MASTER_PASSWORD='123456';
启动
start slave
show slave status;
就形成了双主模式

历史上的今天:

  1. 2017:  Linux 通过host.allow限制特定IP来访(0)