windows下 myCat+mySQL读写分离配置

 

1、mysql配置主从复制

配置主库 (master)

添加以下信息

 

server-id = 200 
binlog-do-db=XXX
log-bin=mysql-bin

 

windows下 myCat+mySQL读写分离配置

 

重启数据库

停止mysql: net stop mysql2

启动mysql: net start mysql2

(这里需要注意 我用mysql2 是因为我安装了两个mysql  我使用的是mysql2)

windows下 myCat+mySQL读写分离配置

 

 

创建授权复制用户 

windows下 myCat+mySQL读写分离配置

grant replication slave on *.* to 用户名@192.168.1.% identified by 密码;
flush privileges;
show master status

配置从库

windows下 myCat+mySQL读写分离配置

 

 

 

server_id=185
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
slave-skip-errors=all

配置完成重启从库mysql。

 

windows下 myCat+mySQL读写分离配置

 

 

 

change master to配置和改变slave服务器用于连接master服务器的参数,

以便slave服务器读取master服务器的binlog及slave服务器的relay log。

同时也更新master info及relay log info信息库。

change master to master_host=192.168.1.1, 
master_user=主库账号,
master_password=主库密码,
master_port=3307, 
master_log_file=.000001, 
master_log_pos=154;

配置完成后启动slave

启动命名 start slave;

windows下 myCat+mySQL读写分离配置

 

 图上两个为Yes就大工告成。

 

配置myCat

我下载的mycat是1.6.7.6版本的。

下载完解压即可

windows下 myCat+mySQL读写分离配置

 

 

读写分离只要配置server和schema就够了 

打开conf找到以下两个文件

server配置连接MyCat的用户及权限

schemas里是逻辑库名 并非真实数据库名与schema的schema保持一致

windows下 myCat+mySQL读写分离配置

 

 schema配置

 

 windows下 myCat+mySQL读写分离配置

 

   

  balance类型

  0:不开启读写分离机制,所有读操作都发送到当前可用的writeHost上

  1:全部的readHost与stand by writeHost参与select语句的负载均衡,

  2:所有读操作都随机在writeHost、readHost上分发

  3:所有读请求随机分发到writeHost对应的readHost执行,writeHost不负担读压力

 

    <schema name="DB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1">
        <!-- auto sharding by id (long) -->
        <!--splitTableNames 启用<table name 属性使用逗号分割配置多个表,即多个表使用这个配置-->
<!--fetchStoreNodeByJdbc 启用ER表使用JDBC方式获取DataNode-->
    </schema>
    <!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743"
        /> -->
    <dataNode name="dn1" dataHost="localhost1" database="真实数据库名" />
    
    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
              writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
              <!-- <heartbeat>show slave status</heartbeat>-->
        <heartbeat>select user()</heartbeat>
        <!-- can have multi write hosts -->
        <!-- 主库 增删改 -->
        <writeHost host="hostM1" url="192.168.1.XXX:3307" user="root"
                   password="123456">
                   <!-- 从库  -->
                   <readHost host="hostS1" url="192.168.1.XXX:3307" user="root" password="123456"></readHost>
        </writeHost>
        <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
    </dataHost>

 

windows下 myCat+mySQL读写分离配置

上一篇:配置Session保存在服务器端的文件或数据库中


下一篇:常用sql语句学习