当前位置: 首页 > 图文教程 > 数据库 > MYSQL > 不同操作系统下的mysql数据库同步

MYSQL
mysql 常用数据库语句 小练习
MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)问题的解决
mysql 字符集的系统变量说明
MySQL 在触发器里中断记录的插入或更新?
将MySQL数据库移植为PostgreSQL
mysql 操作总结 INSERT和REPLACE
linux mysql忘记密码的多种解决或Access denied for user ''root''@''localhost''
运用mysqldump 工具时需要注意的问题
mysql 优化日记
MySQL 字符串函数大全
mysql 截取指定的两个字符串之间的内容
MySQL 备份还原数据库批处理
mysql 数据库中my.ini的优化 2G内存针对站多 抗压型的设置
Mysql 数字类型转换函数
mysql 动态生成测试数据
mysql 显示SQL语句执行时间的代码
mysql 设置查询缓存
MYSQL explain 执行计划
MySQL 有输入输出参数的存储过程实例
巧用mysql提示符prompt清晰管理数据库的方法

MYSQL 中的 不同操作系统下的mysql数据库同步


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 123 ::
收藏到网摘: n/a

当数据库的数据量读写频繁的时候,我们就要考虑把数据库的读写分开,以提高数据库的使用效率,(当然还有其他用处比如,备份数据),这个时候我们就要用到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)配置:

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

修改 mysql 下的my.cnf

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

server-id = 2 //从数据库

master-host = 192.168.1.156

master-user = lzy

master-password = lzy

master-port = 3306

replicate-do-db = account //要同步的数据库

最后,把两个mysql都重启动一下。

1、看看刚才设置的日志路径下有没有日志生成。

2、在156上添加一条数据,看看从数据库有没增加。如果没有,看看slave数据库的错误日志,根据错误信息具体调试下。

=====小插曲=======

配置好同步后,我发觉log-bin的日志位置不好,想换一个地方,于是改到其他盘去了。重启MYSQL后发现同步不能用了。超级郁闷。于是去看了下mysql的错误日志,

“count not find first log file name in binary log in…”

找了半天没找到原因,忽然发现错误日志的同目录下有个master.info文件,应该是记录从主服务器取数据的记录吧。打开看了看是的

14

log-bin.000003

337

192.168.1.156

lzy

lzy

3306

60

0

我把这个文件删除了,重启动mysql。

OK了数据同步过来了。