windows MYSQL的主从复制(一主一从)(转)
主从复制做起来很简单,关键要注意的是二进制日志的问题,默认情况下,MYSQL FOR WIN装好之后是不开启二进制日志的,这一点决定了你的成败。
两个数据库保持一致,其实很简单,别想太多,直接复制\mysql\data,整个data拷过去就可以了。这是最简单,也最快的。(前提,首先net stop mysql 停止数据库)
环境:
win 2003 两台
MYSQL 4.1版本,在这里有人会说我的版本比较老了,我不多做解释,性能上各有需求。
master主库的配置:
进入到\mysql下面,打开my.ini 在[mysqld]下添加如下配置:
server-id=1 #服务器ID,不能相同
binlog-do-db=mysqltest #需要同步的数据库名称为mysqltest
log-bin=mysql-log #开启二进制日志,二进制日志名为:mysql-log
这个名称是自己定义的,开启二进制日志后,每次开启数据库会在\mysql\data下自动生成一个mysql-log.000001,按照顺序,每次重
启数据库会生成这样的一个二进制日志文件。master上开启二进制后还会自动生成一个mysql-log.index文件。
slave从库的配置:
同master一样,配置my.ini,在[mysqld]下添加如下:
server-id=2 #主机ID
master-host=10.1.1.10 #master主库的IP地址
master-port=3306 #主库的端口 默认为3306
master-user=slave #同步帐号
master-password=test123 #同步帐号密码
replicate-do-db=mysqltest #同步的数据库
master-connect-retry=10 #重试间隔时间为10s,实际时间自己按需求来。
read-only=1 #1为只读 0为可读写
保存即可。
此段为我个人添加,也是添加在[mysqld]下,用来实时记录日志的,可添加在主库,也可从库。文件夹需要自己创建
##############################
log-error="D:/mysql/logs/error.log" #错误日志记录
log="D:/mysql/logs/mysql.log" #实时同步数据的日志记录
long_query_time=1 #查询时间为1秒,根据日志大小时间来定
log-slow-queries="D:/mysql/logs/slowquery.log" #开启慢查询,看实际要求看是否需要开启
#################################
配置完毕,net start mysql 开启两个数据库。
验证:在主库使用show master status;
可以看到同步的数据库名和post值
在从库使用show slave status\G;
Relay_Master_Log_File: mysql-log.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
这样就表示已经成功连接上了。主从其实就那么简单,从库在配置好之后,在\mysql\data下会自动生成如下文件:master.info和relay-log.info
从库是不需要开启二进制日志的。