mysql 主从master-slave同步复制 配置,为读写分离准备

 

1、为方便,我在一个windows下安装两个mysql实例,端口分别是 3306、3307

打开 my.ini 或 my-default.ini 文件 配置 basedir datadir 和port ,默认3306。配置如下

主节点

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

basedir = D:\developer\mysql-5.6.24-win32
datadir = D:\developer\mysql-5.6.24-win32\data
# port = .....
# server_id = .....
server-id=10        //[必须]服务器唯一ID,默认是1,一般取IP最后一段

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

 

 

从节点

[mysqld]
log-bin=mysql-bin   #[不是必须]启用二进制日志

basedir = D:\developer\mysql-slave
datadir = D:\developer\mysql-slave\data
port = 3307
server-id=11       #[必须]服务器唯一ID,默认是1,一般取IP最后一段

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

 

 

 

安装mysql 服务,命令如下:

D:\developer\mysql-slave\bin\mysqld.exe install mysql-slave --defaults-file="d:\developer\mysql-slave\my-default.ini"

 

master mysql服务器创建 replication 权限的用户,然后重启

grant replication slave on *.* to 'repl'@'%' identified by 'qwert';

 

 

show master status; 然后不操作数据库。

 

 

slave 服务器 连接 master ,命令如下:

stop slave;
change master to master_host='127.0.0.1', master_port=3306,master_user='repl',master_password='qwert', master_log_file='mysql-bin.000001', master_log_pos = 2388;
start slave;
show slave status;

 

 

 

 

 

 

 出现的问题:

1、 show master status; 显示为空 则是 二进制日志 没有开启 log-bin = ...

2、 show slave status; 显示 Slave I/O: error connecting to master 'repl@127.0.0.1:3306' - retry-time: 60

  因为 master 服务器的mysql 用户有 user = 空的用户, delete from mysql.user where user='' 然后重启即可。

 

 

参考资料:

1. windows下安装多个mysql 

2. mysql主从复制

3. mysql replication配置 http://www.cnblogs.com/northhurricane/p/3919889.html 

4. Windows下MySQL的主从热备(自动同步)配置

 

posted @ 2016-06-24 13:50  xunux  阅读(399)  评论(0编辑  收藏  举报