参考了好多资料,终于搭建成功了一个mysql的主从,记录下来所有的步骤,以及资料中设计到的坑:
1.准备材料:
CentOS--3.10.0-514.el7.x86_64 两台 各自装有mysql--5.6.22
1.1 master : 192.168.8.130
1.2 slave : 192.168.8.131
(这里首先保证mysql可以启动成功,并且可以登录,并且两台机器可以互相ping通)
2.搭建 master:(ssh至192.168.8.130)
2.1 mysql的root用户登录到mysql中。
命令:mysql -uroot -p
2.2 master开通一个用户,用于slave去登录,查看binlog。(如果有多个slave,就开通多个)
命令:GRANT REPLICATION SLAVE ON *.* TO 'dev'@'192.168.8.131' IDENTIFIED BY '123456';
2.3 退出mysql命令,进行MySQL配置。
命令 : exit
2.4 进入到/etc/ 修改mysql的配置文件 my.cnf
命令: cd /etc/
vi my.cnf
2.5 修改如图(master配置文件)
。。。注意这里有坑。。。(这个坑让我找了一天)
log-bin=mysql-bin.log 这一行配置
这个指定的是binlog存放的目录,好多资料中对于这个配置都自定义了目录,导致启动mysql服务启动不了。(具体binlog修改存储目录有待研究)我现在指定的这个方式,binlog是存储在/var/lib/mysql/这个目录下。
2.6 保存上图中的配置文件,重启mysql服务,进入mysql,输入 show master status;如图masterStatus所示表示OK.
=======================至此,master已经OK======================
3.搭建slave:(ssh至192.168.8.131)
3.1 配置slave的配置文件 /etc/my.cnf
命令:vi /etc/my.cnf
3.2 配置文件添加如图slave配置文件。
。。。注意坑。。。
3.2.1 和master 一样,首先log-bin配置不能出现别的目录,否则启动服务报错。
3.2.2 红色框下面的内容为master信息,配置在这儿启动服务报错,不能配置在这儿。
3.3 保存配置文件,重启mysql服务。
3.4 用root登录进去mysql ,配置slave
如图slave配置master 命令图
注意,在配置这一步时,有个重要的点,一旦不注意,配置好了,也会报错的。(当我们读取了master的file和position这两个值时,代表slave会从master的binlog的当前位置去读取,在slave同步历史数据前,master不能进行任何的除select操作,否则从库配置的file和positon就不精准了。导致同步失败)。
3.5 启动slave
start slave;
3.6 查看slave状态是否有异常。
show slave status;
3.7 如果没有 可以重启从服务器,查看是否同步了历史数据,至此,master也可以进行其他操作了。
4. 同步方式配置详细:
4.1mysql中主从同步的方式核心两种:
4.1.1 Statments Based Replication 基于sql语句的复制
4.1.2 Row Based Replication 基于行的复制。
4.1.3 在mysql5.6.5和往后,提供过了第三种方式:global transaction Replication 全局事务复制,大大的简化了复制过程,当master上有事务提交时,slave才会执行该事务。
4.2 如何设置使用哪种同步方式?
使用系统变量 binlog-format来设置。
5. 存在问题:
开启了主从复制,如果slave数据库写入数据,导致执行master的binlog时冲突,可能中断主从复制线程,可以通过如下方式解决。
stop slave; #关闭slave同步
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; 跳过slave同步时的一个错误。
start slave; #开启slave同步。
由于主从复制是基于I/O的日志,所以会存在一定延时,如果对数据一致性要求非常高的话,简单的主从复制在实际环境中会存在问题 ,此时可以考虑使用Mysql Cluster
如出现不能出现图片的问题,请前往个人笔记观看:https://note.youdao.com/share/?id=1125236a9bbe9bbe059256f1919476b1&type=note#/
主要参考资料:https://www.cnblogs.com/majw/p/7778228.html 非常感谢。