不同操作系统下的mysql数据库同步,mysql主从服务器配置特殊问题_Mysql_脚本之家

1.由于设置了slave的配置信息,mysql在数据库data目录下生成master.info,所以如有要修改相关slave的配置要先删除该文件,否则修改的配置不能生效。
提示:如果修改了主服务器的配置,记得删除从服务器上的master.info文件。否则从服务器使用的还是老配置,可能会导致错误。
2.停止数据库服务,并且删除当前的所有mysql日志 3.把从服务器的同步日志删除

当数据库的数据量读写频繁的时候,我们就要考虑把数据库的读写分开,以提高数据库的使用效率,(当然还有其他用处比如,备份数据),这个时候我们就要用到mysql的一个功能,数据库同步。下面就具体讲一下实现方法

一、系统环境

主数据库(master):

系统:windows

数据库:MySQL 5.0.51

IP:192.168.1.156

从数据库(slave):

系统:linux

数据库:MySQL 5.0.67

IP:192.168.1.154

二、配置参数:

发现网上说,两个数据库的配置必须一致,还把两个配置文件对拷。看起来挺有道理,因为怕部分功能不一致,也有可能导致同步错误。但是我的两个MYSQL的所在系统都不一样,所以就按照默认的安装配置了。

数据库准备:

要同步的数据库叫 account

那就必须把主服务器上的account和数据完整的导一份 到slave服务器上

且在主服务器上开一个帐户,允许从服务器访问。

主数据库(master)配置:

=============================

修改mysql 的配置文件my.cnf,

找到 server-id 这一行,更改如下

server-id = 1

且增加两行必要信息:

log-bin           =     d:/log-bin.log #二进制变更日值的存放位置

binlog-do-db =     account  #要同步的数据库

=======================================

解释下:Slave上Mysql的Replication工作有两个线程,I/O thread和SQL
thread,I/O 的作用是从master
3306端口上把它的binlog取过来(master在被修改了任何内容之后,就会把修改了什么写到自己的binlog等待slave更新),然后写到本地的relay-log,而SQL
thread则是去读本地的relay-log,再把它转换成本Mysql所能理解的东西,于是同步就这样一步一步的完成.
master数据库的修改仅此一步就OK了

从数据库(slave)配置:

=====================================

发表评论

电子邮件地址不会被公开。 必填项已用*标注