写在前面:如果此文有幸被某位朋友看见并发现有错的地方,希望批评指正。如有不明白的地方,愿可一起探讨。
MySQL复制的基本原理
MySQL复制解决的基本问题
让一台MySQL服务器的数据与其他MySQL服务器的数据保持同步。
MySQL复制的工作原理
MySQL复制的工作原理图如下所示(图来自高性能MySQL第3版)
MySQL主从复制的基本步骤:
1、启动主库上的二进制文件,并把数据更改记录到二进制日志中;
2、备库将主库上的二进制日志复制到自身的中继日志中;
3、备库读取自身的中继日志中的事件,将其重放到备库数据之上。
案例拓扑图
主从复制
双主模型
前提:在Master和Slave两台主机上安装了mariadb-5.5.36
安装mariadb-5.5.36
创建数据库相关文件所存放的目录# mkdir -pv /mysql/data
# mkdir /mysql/binlogs
# mkdir /mysql/relaylogs
创建数据运行时的用户和用户组# groupadd -r mysql
# useradd -g mysql -s /sbin/nologin -M -d /mysql/data/ -r mysql
修改存放数据库相关文件目录的权限# chown -R mysql:mysql /mysql/*
编译安装maridb-5.5.36# tar xf mariadb-5.5.36-linux-x86_64.tar.gz -C /usr/local/
# cd /usr/local/
# ln -sv mariadb-5.5.36-linux-x86_64/ mysql
# cd mysql/
# chown -R root:mysql ./*
# mkdir /etc/mysql
# cp support-files/my-large.cnf /etc/mysql/my.cnf
# vim /etc/mysql/my.cnf
datadir=/mysql/data
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on
# vim /etc/man.config
MANPATH /usr/local/mysql/man
# ln -sv /usr/local/mysql/include/ /usr/include/mysql