本地环境说明 :
###本机操作系统 windows 部署mycat
###虚拟机两台 分别是数据库一主(172.20.10.7)一从(172.20.10.6)
1.在线安装mysql
1.下载Repo
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
2.安装repo
yum -y install mysql57-community-release-el7-10.noarch.rpm
3.开始安装MySQL服务器
yum -y install mysql-community-server
4.启动mysql服务
systemctl start mysqld.service
5.查看mysql的状态
systemctl status mysqld.service
6.查看原生密码
grep "password" /var/log/mysqld.log
7.修改原生密码
7.1 本地登录 mysql -uroot -p
7.2 修改密码ALTER USER 'root'@'%' IDENTIFIED BY '123456';
7.3 设置允许使用简单密码
set global validate_password_policy=0;
set global validate_password_length=1;
7.4修改完成后再使用
ALTER USER 'root'@'%' IDENTIFIED BY '123456';
8.关闭防火墙
service firewalld stop
2.配置mysql主从
1.配置master
# 修改master的mysql配置
/etc/my.cnf
# 开启二进制日志
log-bin=mysql-bin
# 设置server-id
server-id=1
# 重启mysql
systemctl restart mysqld
# 登录mysql,查看master的状态
show master status;
# 创建同步用户
grant replication slave on *.* to 'slave'@'%' identified by '123456';
2.配置slave
# 设置server-id,必须唯一
server-id=2
# 重启mysql
systemctl restart mysqld
# 登录mysql,执行已下sql
CHANGE MASTER TO
MASTER_HOST='172.20.10.7',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
# 启动从服务
start slave;
# 查看从状态
show slave status;
3.验证主从配置
主执行 create database masterslavetest;
从执行 show databases;
3.配置mycat
1\. 配置server.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
<table name="tb_test" dataNode="dn1,dn2" rule="mod-long" />
</schema>
<dataNode name="dn1" dataHost="master11" database="db1" />
<dataNode name="dn2" dataHost="master12" database="db2" />
<dataHost name="master11" maxCon="1000" minCon="10" balance="0" writeType="0"
dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="172.20.10.7:3306" user="root" password="123456">
<readHost host="hostS2" url="172.20.10.6:3306" user="root" password="123456" />
</writeHost>
</dataHost>
<dataHost name="master12" maxCon="1000" minCon="10" balance="0" writeType="0"
dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM11" url="172.20.10.7:3306" user="root" password="123456">
<readHost host="hostS22" url="172.20.10.6:3306" user="root" password="123456" />
</writeHost>
</dataHost>
</mycat:schema>
2.建库建表
create database db1;
use db1;
CREATE TABLE tb_test (
id BIGINT(20) NOT NULL,
title VARCHAR(100) NOT NULL ,
PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
create database db2;
use db2;
CREATE TABLE tb_test (
id BIGINT(20) NOT NULL,
title VARCHAR(100) NOT NULL ,
PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
3.window 启动mycat前先安装
# 安装服务
mycat.bat install
# 启动mycat
mycat.bat start
4.验证mycat
1.登录mycat
mysql -h 127.0.0.1 -P 8066 -uroot -p 123456
2.增加数据
insert into tb_test(id, title) values(1, "张三");
insert into tb_test(id, title) values(2, "李四");
注:sql语句中必须带有id字段