小记一次mysql主从配置解决方案

 更新时间:2015年10月08日 08:59:22   投稿:hebedich  
mysql主从方案主要作用:读写分离,使数据库能支撑更大的并发。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。

  今天研究了个开源项目,数据库是mysql的,其中的脚本数据需要备份,由于本人的机器时mac pro,而且mac下的数据库连接工具都不怎么好用,就想着如何利用windows下的数据库连接工具使用,并做相关备份,另外windows系统下的sqlyog工具还是非常强大的,在此推荐。

  因此为了使用sqlyog等windows系统下的连接工具,便开始了一天的折腾。

  首先两种思路,其一是利用另外一台宏碁笔记本电脑,直接在其上安装sqlyog使用,通过无线局域网进行连接使用,这种方式太过麻烦,而且来回换电脑很麻烦,远程连接使用也很慢。其二是安装虚拟机,在虚拟机上安装连接工具。

  由于本人的mac pro已经安装mysql数据库,并且已经安装了virtualbox虚拟机并安装了windows7系统,并在windows7系统中也安装了mysql。

  1.在虚拟机win7系统中安装sqlyog,直接连接mac系统的mysql,并导出备份,这个很简单。(当然要注意虚拟机与mac机器的网络连接是通的)

    1)首先要设置虚拟机网卡设置,选择桥接模式,virtualbox这类虚拟机的桥接模式的概念是虚拟机作为网络中的一台单独的机器,有自己的ip,与局域网中的ip是想通的,

      设置virtualbox的桥接模式如图所示

     !

      

这样按照图中的设置,虚拟机根主机就可以相互访问了。

  2)利用sqlyog进行连接

  

对了 还有一点需要注意的是,由于局域网ip可能不会固定,正好本人用的是小米路由器,有绑定设备ip的功能,这样ip就固定啦

从上面的图中可以看出,主机ip跟虚拟机ip是独立的啦。

2.mysql主从备份的方式,mac pro为主master,虚拟机为从slave

1)首先由于mac电脑mysql客户端安装完成后,默认是没有my.cnf文件的,即使修改了/usr/local/mysql/的相关配置也是没有用的,这就需要自定义mysql配置了,将/usr/local/mysql/support-files/中的my-default.cnf 文件 拷贝到/etc目录下,当然这里也遇见问题了,服务启动不了了

这就需要在配置文件中加入explicit_defaults_for_timestamp=true

2)修改配置文件,如下所示

3)修改虚拟机中的mysql目录中的my.cnf

修改mysqld节点

4)重启master及slave并查看状态

查看master状态

查看slave状态

当看到上面两张图片的时候则证明配置成功,当然本人并没有那么顺利,中途遇到了很多问题

其一:Got fatal error 1236 from master when reading data from binary log
这中问题按照网上大部分的解决方法是,首先查看master的状态,并记录下相关信息
比如信息为:


要记录下file:mysql-bin.000002 position:16093
并在slave中执行:

这种方式应该是没有问题的。如果上面这种方式不行,可以试试下面这种,本人试了试应该是没问题,

(这种方式本人可以可能是因为本人配置的时候没有按照规范来,导致主从不一致的原因)

其二:Slave can not handle replication events with the checksum that master is configured to log
  这个错误一般出现在master5.6,slave在低版本的情况下。这是由于5.6使用了crc32做binlog的checksum。除了把master的设置从crc32改到none
  binlog-checksum = none [my.cnf]

其三:本人今天花费了大量的时间主要原因便是这点了,本人在虚拟机里查看slave状态显示都正确,

但是本人通过虚拟机的连接工具,将master数据库中添加了一张表并插入数据,但是总是没有同步到从mysql,于是查看进程
从mysql进程

master进程

这点问题也就是纠结了一天的问题,当然也没有找出具体原因,看提示原因貌似是什么进程已经睡眠的原因,但是为啥睡眠没搞明白,查看slave hosts也没有查到

当然最后,没办法了,纠结了很久也没有发现什么原因的情况下,本人直接在mac机器上直接通过终端插入数据,居然成功了。。。无语。。不过最终能够同步了至少还有点欣慰。至于什么出现这个问题要找时间好好查找原因了。

相关文章

  • Mysql分组查询取最新的几种方案总结

    Mysql分组查询取最新的几种方案总结

    在写报表功能时遇到一个需要根据用户id分组查询最新一条钱包明细数据的需求,下面这篇文章主要给大家总结介绍了关于Mysql分组查询取最新的几种方案,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • mysql实现将字符串字段转为数字排序或比大小

    mysql实现将字符串字段转为数字排序或比大小

    这篇文章主要介绍了mysql实现将字符串字段转为数字排序或比大小,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • MySQL存储Json字符串遇到的问题与解决方法

    MySQL存储Json字符串遇到的问题与解决方法

    要在MySQL中存储数据,必须定义数据库和表结构,下面这篇文章主要给大家介绍了关于MySQL存储Json字符串遇到的问题与解决方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • 浅谈mysql双层not exists查询执行流程

    浅谈mysql双层not exists查询执行流程

    本文主要介绍了浅谈mysql双层not exists查询执行流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Mysql数据库乱码问题的对应方式

    Mysql数据库乱码问题的对应方式

    今天小编就为大家分享一篇关于Mysql数据库乱码问题的对应方式,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • mysql触发器简介、创建触发器及使用限制分析

    mysql触发器简介、创建触发器及使用限制分析

    这篇文章主要介绍了mysql触发器简介、创建触发器及使用限制,结合实例形式分析了mysql触发器的功能、原理、创建、用法及操作注意事项,需要的朋友可以参考下
    2019-12-12
  • mysql启动报错MySQL server PID file could not be found

    mysql启动报错MySQL server PID file could not be found

    这篇文章主要介绍了mysql启动报错MySQL server PID file could not be found,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • MYSQL中binlog优化的一些思考汇总

    MYSQL中binlog优化的一些思考汇总

    这篇文章主要给大家介绍了关于MYSQL中binlog优化的一些思考,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-06-06
  • mysql如何在线修改主从复制选项

    mysql如何在线修改主从复制选项

    这篇文章主要介绍了mysql如何在线修改主从复制选项,帮助大家更好的理解和学习mysql,感兴趣的朋友可以了解下
    2020-08-08
  • Mysql TIMESTAMPDIFF函数示例详解

    Mysql TIMESTAMPDIFF函数示例详解

    这篇文章主要介绍了Mysql TIMESTAMPDIFF函数示例详解,TIMESTAMPDIFF函数返回datetime_expr2 - datetime_expr1的结果,其中datetime_expr1和datetime_expr2可以是DATE或DATETIME类型值,本文给大家详细讲解,需要的朋友可以参考下
    2023-03-03

最新评论