mysql实现主从复制
概述:
有两台mysql服务器Master和slave,Master为主服务器,slave为从服务器,初始状态时,Master和slave中的数据信息相同,当Master中的数据发生变化时,slave也跟着发生相应的变化,使得master和slave的数据信息同步,达到备份的目的。
要点: 负责在主、从服务器传输各种修改动作的媒介是主服务器的二进制变更日志,这个日志记载着需要传输给从服务器的各种修改动作。因此,主服务器必须**二进制日志功能。从服务器必须具备足以让它连接主服务器并请求主服务器把二进制变更日志传输给它的权限
准备环境:
3台centOS7.2服务器 192.168.0.202 192.168.0.137 192.168.0.62
安装mysql5.7(不懂可以查看我的这篇文章 点击打开链接)
配置文件:
一般Linux中的MySQL配置文件都在/etc/my.cnf
log-bin=mysql-bin 开启二进制日志
注意:二进制日志必须开启,因为数据的同步实质上就是其他的MySQL数据库服务器将这个数据变更的二进制日志在本机上再执行一遍。
master: 192.168.0.202 为主数据库服务器
slave: 192.168.0.62 192.168.0.137 为从数据库服务器
在主服务器(192.168.0.202 master)上 用vim命令配置 my.cnf文件;
vim /etc/my.cnf
在[mysqld]下添加
log-bin=mysql-bin
server-id=202 (server-id必须唯一)
重启数据库:service mysqld restart;
在从服务器上(192.168.0.62 192.168.0.137 slave)上 用vim命令配置 my.cnf文件;
重启数据库:service mysqld restart;
Master数据库服务器:
在主数据库上创建用于复制数据的用户 :CREATE USER 'aqi'@'%' IDENTIFIED BY '123456';
授予用户权限:GRANT REPLICATION SLAVE ON *.* TO 'aqi'@'%';
刷新:flush privileges;
执行命令:mysql> show master status;显示如下;此时不再操作Master数据库,并记住下面的值(不然数据会更改)。
操作Slave数据库:
关闭slave:mysql> stop slave
配置master命令: change master to master_host="192.168.0.202",master_user="aqi",master_password="123456",master_log_file="mysql-bin.000004",master_log_pos=760;
启动slave命令: start slave;
查看Slave状态: show slave status\G; 两个yue表示成功。