mycat搭建

302 阅读2分钟

本地环境说明 :

###本机操作系统 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字段