一,试验环境
Windows7 * 3台 (ip:192.168.6.12,192.168.6.23,192.168.6.10)
Mysql5.5
myCat1.6-RELEASE(下载地址:http://dl.mycat.io/)
二,准备工作
2.1Master配置
①在192.168.6.12上部署主数据库,解压缩Mysql5.5至C:\Program Files\MySQL\MySQL Server 5.5,启动cmd,切换至mysql5.5 bin目录,执行mysqld.exe -install导入服务,启动mysql,若能正确登录,则安装成功!
②配置主库:
1 )要主数据库,你必须要启用二进制日志(binary logging),并且创建一个唯一的Server ID,这步骤可能要重启MySQL。
2)主服务器发送变更记录到从服务器依赖的是二进制日志,如果没启用二进制日志,复制操作不能实现(主库复制到从库)。
3)复制组中的每台服务器都要配置唯一的Server ID,取值范围是1到(232)−1,你自己决定取值。
4)配置二进制日志和Server ID,你需要关闭MySQL和编辑my.cnf或者my.ini文件,在 [mysqld] 节点下添加配置。
5)下面是启用二进制日志,日志文件名以“mysql-bin”作为前缀,Server ID配置为1,如下:
[mysqld]
#添加如下两行即可:
log-bin=mysql-bin
server-id=1
#网络上还有如下配置
#binlog-do-db=mstest //要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名 #binlog-ignore-db=mysql //要忽略的数据库
提示1:如果你不配置server-id或者配置值为0,那么主服务器将拒绝所有从服务器的连接。
提示2:在使用InnoDB的事务复制,为了尽可能持久和数据一致,你应该在my.cnf里配置innodb_flush_log_at_trx_commit=1 和 sync_binlog=1;
6 )重启mysql服务,输入 mysql> show master status;
(注意:记录好File和Position,后面要用)
2.2Cluster配置
①从服务器,同理,要分配一个唯一的Server ID,需要关闭MySQL,修改好后再重启,如下:
[mysqld]
server-id=2
#可以指定要复制的库
replicate-do-db = clusterdb#在master端不指定binlog-do-db,在slave端用replication-do-db来过滤
replicate-ignore-db = mysql #忽略的库
#网上还有下面配置
#relay-log=mysqld-relay-bin
提示1:如果有多个从服务器,每个服务器的server-id不能重复,跟IP一样是唯一标识,如果你没设置server-id或者设置为0,则从服务器不会连接到主服务器。
提示2:一般你不需要在从服务器上启用二进制日志,如果你在从服务器上启用二进制日志,那你可用它来做数据备份和崩溃恢复,或者做更复杂的事情(比如这个从服务器用来当作其它从服务器的主服务器)。
②配置连接主服务器的信息
重启mysql,执行如下命令
mysql> stop slave;
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.6.12',
-> MASTER_USER='root',
-> MASTER_PASSWORD='123456',
-> MASTER_LOG_FILE='mysql-bin.000002',
-> MASTER_LOG_POS=3213;
mysql> start slave;
提示:此步骤可能会报错,slave未配置(ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO),此时检查my.ini文件下的配置是否写在[mysqld]下面,而不是[mysqld_safe]下!!!临时策略:可以通过执行 mysql>SET GLOBAL server_id=2来暂时性解决这个问题,此方式会在mysql服务重启之后失效!!
请问题参考博文:http://blog.csdn.net/l1028386804/article/details/48413681
③如上步骤全部执行完毕
mysql> show slave status \G;
以上为网络截图,若此两项都为Yes,则从库配置成功!此时从库cluster2也是照猫画虎,同样配置.
三,主从测试
此时在mysql-master下新建数据库clusterdb,再新建user表,然后到mysql-cluster与mysql-cluster02下新建同样的数据库表
修改master下user表的u_phone字段
master:
你会惊喜的发现cluster下的u_phone字段同样发生了变化,那么恭喜你!主从配置已经成功!!此时无论是在master进行增删改,从库都会相应变化!
cluster/cluster02
四,配置myCat
1.下载myCat,解压缩至D:\mycat(注意:安装路径不要带空格,否则会报错)
2.配置环境变量
①MYCAT_HOME
②Path
3.配置
①进入目录D:\mycat\conf,修改schema.xml,如下:
②启动mycat
进入目录D:\mycat\bin,双击startup_nowrap.bat,若无闪退,报错信息,则启动成功!
③使用navicat链接mycat(新建Mysql链接,只需将端口号改为8066即可)
③链接成功则会出现如下虚拟库(为上面xml中所配置的虚拟库)
在此虚拟库对user表进行增删改则会走master数据库,若进行查询则会按照负载均衡策略查找cluister或者cluster02库!!
查看sql执行链接可以前往D:\mycat\logs mycat.log进行查看,如下:
如此,便全部配置成功!!