本文主要讲述一下Mysql主从复制之一主一从的实现方法;
MySQL的复制是mysql数据库内建的功能,是构建基于mysql的大规模、高性能应有物基础,这类应用所谓的"水平扩展"的架构。可以通过为服务器配置为一个或多个备库的方式来进行数据同步。复制功能不仅有利于构建高性能的应用,同是也是高可用性、可扩展性、灾难恢复、备份以及数据仓库等工作的基础。复制解决的基本问题是让一台服务器的数据与其他服务器保持同步。可以实现一台主服务器的数据可以同步到多台从服务器上,其实从服务器本身也是可以被配置成另外一台服务器的主服务器的。主和从之间可以有多种组合方式,应生产环境而定,可选择适合的组合方式;本文主要讲述一下Mysql主从复制之一主一从的实现方法;
主从复制的实现过程;
mysql复制默认为异步的工作模式;
主服务器binlog dump;将IO thread请求的事件发送给对方;具备读写
IO thread;向主服务器请求二进制日志中的事件; 只能读
主服务器(Master);172.16.38.10
从服务器(Slave);172.16.38.11
系统均为:CentOS6.5_64位
在配置主从之前,需要注意一点,就是从服务器数据库版本一定要高于或等于主服务器的版本;
1、Master的配置
打开mysql的主配置文件里添加如下:
vim /etc/my.cf/
chown -R mysql:mysql /mydata/binlogs
3、连接数据库创建复制权限的用户帐号;
mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO ‘user‘@‘172.16.%.%‘ IDENTIFIED BY ‘redhat‘;
1、Slave配置;
打开从服务器的主配置文件;vim /etc/my.cf,添加如下;
2、创建存放服务器的中继日志日录;
4、连接上之后在主服务器上查看一下线程;
5、在主服务器上创建一个新的数据库,后在查看从服务器是否可以同步过去;
验证主服务器上创建的新库是否存在;
7、主服务器查看日志滚动编号;
从中间开始复制数据库
在主服务器生成数据文件,让从服务不从头开始复制,锁定位置在主服务器上做备份,让从服务器从中间开始复制
主服务器,如下图;
[root@mysql ~]# mysqldump --all-databases --flush-logs --master-data=2 --lock-all-tables > cba.sql
# scp cba.sql root@172.16.38.11:/root
从服务器;
mysql> shwo slave status\G
再在在主服务器新建数据库;
查看主服务器上的库是否同步到从服务器;