zoukankan      html  css  js  c++  java
  • 利用mycat读写分离搭建wordpress博客网站

    实验环境

    以下配置都是建立在mariadb主从没有问题的情况下:
    
    1.三台主机:
    在三台机器/etc/hosts添加以下3条主机信息(mycat和wordpress在一台机器上面) mycat:
    192.168.254.24 hostM1:192.168.254.28 hostS1:192.168.254.29 2.需要安装java1.8版本或以上
    3.wordpress需要5.6版本以上的php,你下载5.4的也没有关系,后面我会告诉大家怎么去修改
    4.下载mycat源码包 (1wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz2tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz (3mv mycat /usr/local/

    实验架构

    mycat配置

    vim /usr/local/mycat/conf/server.xml设置如下参数

    <user name="testuser1">
    <property name="password">testuser1</property>
    <property name="schemas">testdb,testdb1</property>
    </user>
    <user name="testuser2">
    <property name="password">testuser2</property>
    <property name="schemas">testdb,testdb1</property>
    <property name="readOnly">true</property>
    </user>
    
    #testuser1用来写的用户
    #testuser2用来读的用户
    #testdb是mycat是逻辑库

    vim /usr/local/mycat/conf/schema.xml配置(请先备份cp schema.xml schema.xml.bak,然后把schema.xml文件清空,粘贴以下内容)

    <?xml version="1.0"?>
    <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
    <mycat:schema xmlns:mycat="http://io.mycat/">
    <schema name="testdb" checkSQLschema="false" sqlMaxLimit="1000" dataNode="dn1">
    </schema>
    <schema name="testdb1" checkSQLschema="false" sqlMaxLimit="1000" dataNode="dn2">
    </schema>
    
    <dataNode name="dn1" dataHost="hostM1" database="test" />
    <dataNode name="dn2" dataHost="hostM1" database="test1" />
    <dataHost name="hostM1" maxCon="2000" minCon="1" balance="1" writeType="1" dbType="mysql" dbDriver="native" switchType=
    "1" slaveThreshold="100">
    <heartbeat>select user()</heartbeat>
    <writeHost host="hostM1" url="192.168.254.28:3306" user="testuser1" password="testuser1">
    <readHost host="hostS1" url="192.168.254.29:3306" user="testuser2" password="testuser2" />
    </writeHost>
    </dataHost>
    </mycat:schema>

    server.xml和schema.xml标绿色处要一致,都是逻辑库,我这里创建了2个逻辑库

    dataHost为数据节点名称,database为真实数据库名称即后台数据库test和test1

    balance:

    0表示不开启读写分离,都在master上执行读写操作

    1表示都参与select

    2表示所有读请求随机在readhost和writehost分担

    3表示所有读请求对应到readhost里去

    writeType

    0,所有写操作发送到配置的第一个writeHost

    1,所有写操作都随机的发送到配置的writeHost

    2,不执行写操作。

    switchType

    -1,不自动切换

    1,默认值,自动切换

    2,基于MySQL 主从同步的状态决定是否切换

    3,基于MySQL galary cluster的切换机制(适合集群)(1.4.1),心跳语句为 show status like &lsquo;wsrep%&rsquo;

    writeHost和readHost分别配置对应后台的mysql主从真实用户密码

    创建用户并赋予权限(主创建同步到从)

    grant all on *.* to testuser1@'%' identified by 'testuser1';
    grant all on *.* to testuser2@'%' identified by 'testuser2';

    启动mycat服务并查看端口

    /usr/local/mycat/bin/mycat start

    8066是管理端口

    9066是连接后端数据库的端口,默认是9066,登录该端口后直接用show @@datasource;语句即可查询主从库的读写状态

    mysql -h 192.168.254.24 -P8066 -utestuser1 -ptestuser1    (可以执行增删改查)

    mysql -h 192.168.254.24 -P9066 -utestuser1 -ptestuser1     (可以查看节点状态)

    查看心跳状态

    show @@heartbeatG

    #查看前端连接状态

    show @@connectionG

    #查看后端状态

    show @@backendG

     #查看数据库资源状态

    show @@datasource

    搭建wordpress

    下载wordpress安装包

    [root@localhost ~]# wget https://cn.wordpress.org/latest-zh_CN.zip
    [root@localhost ~]# unzip latest-zh_CN.zip
    [root@localhost ~]# cp -a wordpress/ /var/www/html/

    把请求php的版本调到5.4.0

     [root@localhost html]# vim wordpress/wp-includes/version.php
                $required_php_version = '5.4.0'; 

     修改php文件

    [root@localhost wordpress]# mv wp-config-sample.php wp-config.php
    [root@localhost wordpress]# vim wp-config.php
    改成如下图:

     浏览器输入:http://hostip/wordpress,走一遍向导,OK

    验证:

    我们可以在博客上随便添加个用户,或者写个文章等,只要能记录到数据库当中就可以,然后我们可以利用上面查看在mycat的查看命令查看是否读写分离

    思考

    我们也可以对mycat做高可用,并且还能负载均衡,这里的wp代表wordpress如下拓扑图你是否能自己完成?

      ok,没有问题,打包收工!!

  • 相关阅读:
    分治fft
    DSU on tree
    最小矩形覆盖
    用gallery展示图片,实现中间图片稍大,两边较小的效果
    动态刷新listview中的数据
    比较两个文件是否一样
    安卓巴士Android开发神贴整理
    Failed to register input channel. Check logs for details.
    解决scrollview嵌套ImageView时,出现除顶部和底部黑块的问题
    获取系统图片,并放入ImageList
  • 原文地址:https://www.cnblogs.com/fengzi7314/p/10582319.html
Copyright © 2011-2022 走看看