MySQL主主复制、主从复制

概述

数据库MySQL1、MySQL2分别在主机A、主机B上,MySQL1新建库D,则MySQL2也新建库D,MySQL1原有库A、B、C,MySQL2也原有库A、B、C。总之MySQL1和MySQL2一样;

环境

2台Linux虚拟主机,版本均为centos6.5,对应2个不同的ip地址,这2台虚拟主机均安装有mysql5.6;

开始构建主从复制

步骤1:

  切换用户,service iptables stop以暂时关闭防火墙,chkconfig --level 2345 iptables off以永久关防火墙,ifconfig以看ip地址;

  使2个操作系统下的mysql里没有任何数据,自己不创建任何库,自带的库不用管;

  令主机A为主数据库服务器,主机B为从数据库服务器(谁为主无所谓);

  一般Linux下mysql配置文件在/etc/my.cnf;find / -name my.cnf以查找所有名为my.cnf的文件;vim /etc/my.cnf以打开mysql配置文件,在配置文件中加log-bin=mysql-bin,表示已开启二进制日志,必须开启主服务器二进制日志,因为数据的同步实质为其他的mysql数据库服务器将这个数据变更的二进制日志在本机上再执行一遍,配置文件中保证每台主机的server-id不重复;

步骤2(在master数据库服务器中):

  进入mysql;

  GRANT REPLICATION SLAVE ON *.* TO '主库用户名'@'从库ip地址' IDENTIFIED BY '主库密码';  //创建一个slave主机中可以登录的mysql用户

  FLUSH PRIVILEGES;

  退出mysql;

  service mysql stop;

  service mysql start;

步骤3(在master数据库服务器中)

  进入mysql;

  show master status;

  停止服务再启动服务;

步骤4(在slave数据库服务器中)

  进入mysql;

  CHANGE MASTER TO MASTER_HOST='主库ip地址',MASTER_USER='主库用户名',MASTER_PASSWORD='主库密码',

  MASTER_LOG_FILE='mysql-bin.000011',MASTER_LOG_POS=417;

  (在CHANGE MASTER TO之前stop slave;reset slave;)

  START SLAVE;

  SHOW SLAVE STATUSG

  (养成习惯:改配置文件先停掉服务)

测试主从复制

  进入主的mysql,show databases,进入从的mysql,show databases;

  进入主MySQL,建库,新库名test,再进入从MySQL,看有没有这一新库test;

  关机后,做步骤4,重启slave数据库服务器以重新开启主从复制;

原文地址:https://www.cnblogs.com/yyjh/p/10568256.html