mysql数据库主从复制配置

最近研究了一下mysql,动手配置了主从复制,效果完全实现。这里写出来和大家共享一下,

我是在一台win7上安装了两个mysql数据库来实现的,将从数据库的port设置为3308.如何安装两台数据库,这里就不讲了,只讲一下我是如何实现配置来实现主从复制的。

一.主数据库配置:

1. 修改配置信息:

win7上默认的mysql配置信息文件安装路径为:(linux:/etc/my.cnf)

 C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.6\my.ini,

在[mysqld]添加如下配置:

server-id =1   

sync_binlog=1

##同步的数据库

binlog-do-db=usercenter  

##被忽略的数据库

binlog_ignore_db=mysql

另外还有个参数也必须要配置:

log-bin=mysql-bin //[必须]启用二进制日志

完了重启动主库。

2.创建专门用来主从同步的用户并授权:

sql如下:

mysql>grant replication slave on *.* to ‘用户名’@'主机’ identified by ‘密码’;

3.锁主库表--这个非必需。
mysql> FLUSH TABLES WITH READ LOCK;
4.显示主库信息
记录File和Position,从库设置将会用到,从库的相关参数必须设置得和主库的一致。
=====================
mysql> SHOW MASTER STATUS;
 
二。从库配置:
1.修改配置信息:
找从库的my.ini文件,
在[mysqld]下添加如下配置,带#号的不需要,在win7下配置了反而导致数据库无法启动,不知道是否是因为是一台机器上多个数据库的原因,还是在win7上的原因。
server-id=2
#master-host=127.0.0.1
#master-user=masterslave
#master-password=123456
#master-port=3306
#master-connect-retry=60
##同步的数据库
replicate-do-db=usercenter
##replicate-do-db=database2
##被忽略的数据库
replicate-ignore-db=mysql
------这下面的参数不能加,其实加了不能启动--------------------
#这个参数一定要加上,否则不会给更新的记录些到二进制文件里
#log-slave-updates
#是跳过错误,继续执行复制操作
#slave-skip-errors
完了重启从数据库。
 
2设置同步
MASTER_LOG_FILE为主库的File,MASTER_LOG_POS为主库的Position,这两个参数必须和主库当前的查询到的一致。注意主库每启动一次,参数值会不一样,从库要相应修改参数。
mysql>stop slave;
mysql>change master to 
master_host='127.0.0.1',
master_user='masterslave',
master_password='123456',
master_port=3306,
master_log_file='mysql-bin.000001',
master_log_pos=120;
3.开启从同步:
mysql>start slave;
4.查看状态:
mysql>show slave status;将内容复制到editplus,看一下

如果Slave_IO_Running、Slave_SQL_Running状态为Yes则表明设置成功。同时配置的描写的同步数据库与忽略同步的数据库都应该正确。

如果为no或参数不一样,则需要检查前面的步骤中是否有错误。

 

如不在一台机器上,还要注意看机器上防火墙设置是否打开。

 

如果这里都正确的话,就应该没问题了。主数据库的修改很快就会同步从数据库。

 

 

 

猜你喜欢

转载自fsh430623.iteye.com/blog/2237293