MySQL主主复制、主从复制

时间:2023-03-09 18:31:57
MySQL主主复制、主从复制

意思:

主机A上有mysql1,主机B上有mysql2,mysql1新建库D,则mysql2也新建库D,mysql1原有库A、B、C,mysql2也原有库A、B、C,总之mysql1和mysql2一样。

环境:

2台linux虚拟主机(linux版本均为centos6.5),对应2个不同的ip地址,这2台linux虚拟主机里均有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 '主库密码';        //(创建一个从主机中可以登录的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 STATUS\G

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


测试主从复制:

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

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

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