Mysql实例mysql 5.6.14主从复制(也称mysql AB复制)环境配置方法
《Mysql实例mysql 5.6.14主从复制(也称mysql AB复制)环境配置方法》要点: MYSQL教程一、mysql主(称master)从(称slave)复制的原理: MYSQL教程????? (1).master将数据改变记录到二进制日志(binary log)中,也即是配置文件log-bin指定的文件(这些记录叫做二进制日志事件,binary log events) MYSQL教程附简要原理图: MYSQL教程 MYSQL教程二、mysql主从复制支持的类型: MYSQL教程??? (1).基于语句的复制:在主服务器上执行的SQL语句,在从服务器上执行同样的语句.MySQL默认采用基于语句的复制,效率比较高 MYSQL教程word-spacing: 0px">?? (2).基于行的复制:把改变的内容直接复制过去,而不关心到底改变该内容是由哪条语句引发的 . 从mysql5.0开始支持 MYSQL教程三、主从配置需要注意的地方: MYSQL教程?? (1).主DB server和从DB server数据库的版本一致 MYSQL教程四、主从配置的简要步骤: MYSQL教程附简要示意图: MYSQL教程 MYSQL教程1.主DB SERVER上的配置 MYSQL教程?? (1).安装数据库 MYSQL教程以下步骤,为单向主从搭建成功,想搭建双向主从需要的步骤: MYSQL教程?? (1).登陆数据库,指定主DB server的地址,用户,暗码等信息[此步仅双向主从时,需要] MYSQL教程?? (2).开启同步,查看状态 MYSQL教程2.从DB SERVER上的配置 MYSQL教程? (1).安装数据库 MYSQL教程五、单向主从环境[也称 mysql A/B复制]的搭建案例: MYSQL教程1.主DB server和从DB server都安装相应版本的数据库,我的两台DB server都已经安装好(5.6.14版本),都会是双实例,这里就不演示安装,可以参考mysql源码编译安装和mysql多实例配置两篇文章 MYSQL教程
[root@client102 scripts]# vim /etc/my.cnf
# 修改配置文件里,下面两个参数:
# 设置server_id,一般建议设置为IP,或者再加一些数字
server_id =102
# 开启二进制日志功能,可以随便取,最好有含义
log-bin=mysql3306-bin
MYSQL教程3.启动数据库服务器,并登陆数据库,授予相应的用户用于同步 MYSQL教程
# 我这里是多实例mysql,所以启动是这样的,如果大家是单实例的,就直接启动就可以[/etc/init.d/mysqld start]
[root@client102 scripts]# mysqld_multi start 3306
# 登陆mysql 服务器
[root@client102 scripts]# mysql -uroot -S /usr/local/mysql/mysqld3306.sock -p
# 授予用户权限用于主从同步
mysql> grant replication slave on *.* to 'kongzhong'@'192.168.1.100' identified by 'kongzhong';
Query OK,0 rows affected (0.00 sec)
# 刷新授权表信息
mysql> flush privileges;
Query OK,0 rows affected (0.00 sec)
# 查看position 号,记下position 号(很重要,从机上需要这个position号和现在的日志文件,我这里是414和mysql3306-bin.000001)
mysql> show master status;
+----------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------------+----------+--------------+------------------+-------------------+
| mysql3306-bin.000001 | 414 | | | |
+----------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
MYSQL教程4.为保证主DB server和从DB server的数据一致,这里采用主备份,从还本来实现初始数据一致 代码如下:# 临时锁表 mysql> flush tables with read lock; # 我这里实行的全库备份,在实际中,我们可能只同步某一个库,可以只备份一个库 # 新开一个终端,执行如下操作 [root@client102 data]# mysqldump? -p3306 -uroot -p? -S /usr/local/mysql/mysqld3306.sock? --all-databases > /tmp/mysql.sql # 解锁 mysql> unlock tables; # 将备份的数据传送到从机上,用于恢复 ?[root@client102 data]# scp? /tmp/mysql.sql? root@192.168.1.100:/tmp MYSQL教程5.从DB server配置文件只需修改一项,其余用命令行做 代码如下:[root@client100 ~]# vim /etc/my.cnf # 设置server_id,或者再加一些数字 server_id =100 MYSQL教程6.启动数据库,还原备份数据 代码如下:# 启动数据库 [root@client100 ~]# mysqld_multi start 3306 # 还原主DB server备份的数据 [root@client100 ~]# mysql -uroot -S /usr/local/mysql/mysqld3306.sock -p < /tmp/mysql.sql MYSQL教程7.登陆数据库,添加相关参数(主DBserver的ip/端口/同步用户/暗码/position号/读取哪个日志文件) 代码如下:[root@client100 ~]# mysql -uroot -S /usr/local/mysql/mysqld3306.sock -p mysql> change master to ??? -> master_host='192.168.1.102', ??? -> master_user='kongzhong', ??? -> master_password='kongzhong', ??? -> master_port=3306, ??? -> master_log_file='mysql3306-bin.000001', ??? -> master_log_pos=414; #/*? 下面是一部分注解: #/*? 指定主DB server的IP地址 master_host='192.168.1.102' #/*? 指定用于同步的用户[这个就是我们在主DB server授权的用户] master_user='kongzhong' #/* 指定用于同步的用户的暗码 master_password='kongzhong' #/* 指定主DB server的端口[下面一个例子,可以重点看这个] master_port=3306 #/*? 指定从DB server 从哪个日志文件开始读[在主DB server上使用show master status查看到日志] master_log_file='mysql3306-bin.000001' #/*? 指定 从哪个POSITION号开始读 master_log_pos=414 # 开启主从同步 mysql> start slave; # 查看主从同步状态 mysql> show slave statusG; # 主要看以下两个参数:[这两个参数如果是yes就表示主从同步正常] Slave_IO_Running: Yes Slave_SQL_Running: Yes MYSQL教程8.下面大家就可以在主DB server上新建一个表,看是否能同步到从DB server上,我这里就不测试了 MYSQL教程[注:千万不要在从DB server手动插入数据,那样数据就不一致,主从就会断开,需要重新配置了] MYSQL教程如果有问题,可以尝试关闭IPTABLES(/etc/init.d/iptables stop)和selinux(setenforce 0:临时关闭selinux,永久关闭selinux,将SELINUX改为disabled) MYSQL教程9.上面所搭建的是单向主从,也是用的比较多的,有人想了解双向主从是如何搭建,其实,就是主DB server和从DB sever都开启日志功能,然后在主DB SERVER执行授权用户[这里授权的是本身作为从服务器,也就是这里的IP地址是主DB server的IP地址],然后再在主DB server上进行chang master操作.有不理解的可以留言询问. 编程之家PHP培训学院每天发布《Mysql实例mysql 5.6.14主从复制(也称mysql AB复制)环境配置方法》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |