不同操纵系统下的mysql数据库同步
核心提示:当数据库的数据量读写频繁的时候,我们就要考虑把数据库的读写分开,以进步数据库的使用效率,(固然还有其他用处比如,备份数据),这个时候我们就要用到mysql的1个功能,数据库同步。下面就具体讲1下实现方法。
当数据库的数据量读写频繁的时候,我们就要考虑把数据库的读写分开,以进步数据库的使用效率,(固然还有其他用处比如,备份数据),这个时候我们就要用到mysql的1个功能,数据库同步。下面就具体讲1下实现方法。
1、系统环境
主数据库(master):
系统:windows
数据库:MySQL 5.0.51
IP:192.168.1.156
从数据库(slave):
系统:linux
数据库:MySQL 5.0.67
IP:192.168.1.154
2、配置参数:
发现网上说,两个数据库的配置必须1致,还把两个配置文件对拷。看起来挺有道理,由于怕部份功能不1致,也有可能导致同步毛病。但是我的两个MYSQL的所在系统都不1样,所以就依照默许的安装配置了。
数据库豫备:
要同步的数据库叫 account
那就必须把主服务器上的account和数据完全的导1份 到slave服务器上
且在主服务器上开1个帐户,答应从服务器访问。
主数据库(master)配置:
=============================
修改mysql 的配置文件my.cnf,
找到 server-id 这1行,更改以下
server-id = 1
且增加两行必要信息:
log-bin = d:/log-bin.log #2进制变更日值的寄存位置
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所能理解的东西,因而同步就这样1步1步的完成.
master数据库的修改仅此1步就OK了
从数据库(slave)配置:
=====================================
修改 mysql 下的my.cnf
找到 server-id 这1行,更改以下
server-id = 2 //从数据库
master-host = 192.168.1.156
master-user = lzy
master-password = lzy
master-port = 3306
replicate-do-db = account //要同步的数据库
最后,把两个mysql都重启动1下。
1、看看刚才设置的日志路径下有无日志天生。
2、在156上添加1条数据,看看从数据库有没增加。假设没有,看看slave数据库的毛病日志,根据毛病信息具体调试下。
=====小插曲=======
配置好同步后,我发觉log-bin的日志位置不好,想换1个地方,因而改到其他盘往了。重启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了数据同步过来了。
唐山网站建设www.fw8.netTAG:数据库,数据,日志,毛病,两个
评论加载中...
|