Mycat及MySQL实例部署情况:
Mycat(版本:5.6.29):
IP:192.168.227.6,Port:3310/3311
MySQL(版本:5.6.29) :注意MySQL版本最好5,6以上,刚开始yum安装默认版本5.1.73版本总报错
userHost1,IP:192.168.227.3,Port:3306
userHost2,IP:192.168.227.4,Port:3306
userHost3,IP:192.168.227.5,Port:3306
架构图:
1,MySQL主从复制配置
主IP:192.168.227.3
从IP:192.168.227.5
首先:修改mysql的配置文件,使其支持二进制日志功能。
打开主服务器的mysql配置文件:my.conf
vim /etc/my.cnf 加上:
server-id = 3 //为服务器设置一个独一无二的id便于区分,这里使用ip地址的最后一位充当server-id
log-bin=mysql-bin //将mysql二进制日志取名为mysql-bin
binlog_format=mixed //二进制日志的格式,有三种:statement/row/mixed,具体分别不多做解释,这里使用mixed
replicate-do-db = db_store //需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
replicate-ignore-db = mysql //不需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
replicate-ignore-db = information_schema
保存重启数据库
同样进入从数据库修改
server-id = 5
log-bin=mysql-bin
binlog_format=mixed
replicate-do-db = db_store
replicate-ignore-db = mysql
replicate-ignore-db = information_schema
截图:
其次:在主服务器上为从服务器分配一个账号,就像一把钥匙,从服务器拿着这个钥匙,才能到主服务器上来共享主服务器的日志文件。
进入主服务器的mysql界面,
命令: # mysql -u root -p password //我这里mysql账号是root,密码是password
在mysql操作界面下,输入下面一行命令:
GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY 'password';
查看主服务器BIN日志的信息(执行完之后记录下这两值,然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作数据库时这两值会发生改变).
再次:设置从服务器
进入从服务器
关闭slave(如果你以前配置过主从的话,一定要先关闭)
命令:stop slave;
开始配置:
输入下面代码即可:
CHANGE MASTER TO
MASTER_HOST="192.168.227.3",
MASTER_USER="root",
MASTER_PASSWORD="password",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=311;
注意:MASTER_LOG_FILE和MASTER_LOG_POS值看主服务器日志信息
从服务器配置完成,启动从服务器:
命令: start slave;
2,配置Mycat
server.xml:
schema.xml:
修改rule.xml中下列配置项:
db_store建表语句:
DROP TABLE IF EXISTS `employee`;
CREATE TABLE `employee` (
`employeeID` int(11) NOT NULL,
`userName` varchar(16) COLLATE utf8_bin DEFAULT NULL,
`phoneNum` varchar(32) COLLATE utf8_bin DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`createTime` datetime DEFAULT NULL,
`lastUpdate` datetime DEFAULT NULL,
PRIMARY KEY (`employeeID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- ----------------------------
-- Table structure for store
-- ----------------------------
DROP TABLE IF EXISTS `store`;
CREATE TABLE `store` (
`storeID` int(11) NOT NULL,
`storeName` varchar(32) COLLATE utf8_bin DEFAULT NULL,
`storeAddress` varchar(256) COLLATE utf8_bin DEFAULT NULL,
`createTime` datetime DEFAULT NULL,
`lastUpdate` datetime DEFAULT NULL,
PRIMARY KEY (`storeID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;