mysql主从搭建

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/oneSeekers/article/details/81592508

参考了好多资料,终于搭建成功了一个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 非常感谢。

 

 

 

 

阅读更多
换一批

没有更多推荐了,返回首页