部署Mysql的主从同步
实现数据从一台数据库(master)复制到一台或者多台数据库(slave)
Replication 的原理:master 将数据库的改变写入二进制日志,slave 同步这些二进制日志,并根据这些二进制日志进行数据操作

复制有 3 个步骤:

(1) master 将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events)

(2) slave 将 master 的 binary log events 拷贝到它的中继日志(relay log)

(3) slave 重做中继日志中的事件,修改 salve 上的数据。

mysql会使用swap空间吗_二进制日志


首先,准备两台数据库,一主(master),一备(slave)

主IP:192.168.44.137

从IP:192.168.44.131

创建需要同步的库

配置主数据库

create database fpx;
 use fpx;
 create table A1(id int,name varchar(20));

然后停止服务

修改配置文件/etc/my.cnf

(插入以下内容)

log-bin=mysql-bin-master #启用二进制日志

server-id=1 #本机数据库 ID 标示

binlog-do-db=fpx #可以被从服务器复制的库, 二进制需要同步的数据库名

binlog-ignore-db=mysql #不可以被从服务器复制的库

mysql会使用swap空间吗_mysql_02


启动数据库服务

授权,进到数据库中(不要直接复制下面的代码,少了*.*)

grant replication slave on . to slave@192.168.44.131 identified by “123456”;

mysql会使用swap空间吗_mysql会使用swap空间吗_03


刷新权限

flush privileges;

查看状态信息

show master status;

mysql会使用swap空间吗_二进制日志_04


(可以看到显示二进制文件,同步的库,及不同步的库)

查看系统中二进制文件

ls /var/lib/mysql

mysql会使用swap空间吗_二进制日志_05

show binlog events\G

配置从数据库
从主数据库导出fpx数据库

mysqldump -uroot -p123456 fpx > /fpx/fpx.sql

传到从数据库

scp /fpx/fpx.sql root@192.168.44.131:/fpx/

在从服务器上测试slave账号是否可用(要注意防火墙或iptables -F)

mysql -u slave -p123456 -h 192.168.44.137

导入数据库

mysql> create database fpx;
 mysql -uroot -p123456 fpx</fpx/fpx.sql

导完停止数据库服务

编辑/etc/my.cnf (添加一个行)

server-id= 2(id不能重复)

mysql会使用swap空间吗_数据库_06


启动服务

进入数据库

指向主数据库

mysql> stop slave;
 mysql>change master to master_host=‘192.168.44.137’,master_user=‘slave’,master_password=‘123456’;
 mysql>start slave;

查看连接状态

show slave status\G

mysql会使用swap空间吗_mysql_07


主数据库上查看

show processlist \G

mysql会使用swap空间吗_二进制日志_08


测试

主数据库上添加数据

use fpx;
 insert into A1 values(1,‘fpx’);
 select * from A1;

mysql会使用swap空间吗_mysql_09


查看从服务器,也有数据了

mysql会使用swap空间吗_二进制日志_10