mycat1.6研究环境搭建(全局序列号、读写分离、故障转移)

为了充分揭示mycat读写分离、写节点挂掉后的自主切换、路由解析等原理,先搭建mycat测试环境,架构如下:

mycat1.6研究环境搭建(全局序列号、读写分离、故障转移)_第1张图片

 

1、源码安装 mysql

  1. 安装Linux编译等基础软件

    yum -y install gcc gcc-c++ ncurses-devel pcre pcre-devel openssl openssl-devel
     
  2. 安装cmake

    cmake安装包下载地址:http://pan.baidu.com/s/1qYc1vBI#list/path=%2F

    比如将cmake-2.8.5.tar.gz 下载在 /root/download目录下。安装 cmake 操作如下:

    cd /root/download

    tar -xf cmake-2.8.5.tar.gz

    cd cmake-2.8.5

    ./configure

    make

    make install 
     
  3. 安装mysql

    //创建mysql用户

    useradd -M mysql   // 创建mysql用户与用户组,不生成用户主目录

    mkdir -p /usr/local/mysqlA

    mkdir -p /usr/local/mysqlA/data

    cd /root/download   //假设mysql.5.6.1.tar.gz 源码安装包放在该目录下

    tar -xvf mysql.5.6.1.tar.gz

    cd mysql5.6.1

    cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysqlA  -DMYSQL_DATADIR=/usr/local/mysqlA/data 

        -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci  -DEXTRA_CHARSETS=all 

       -DENABLED_LOCAL_INFILE=1      

    // 用cmake命令编译mysql,如果在编译期间发生错误,请用yum -y install 安装依懒包后,注意先将cmake产生的中间     

    // 文件删除

    # rm -rf CMakeCache.txt

    # rm -rf /etc/my.cnf

    # cmake 成功后执行  make make install

    make

    make install

    //这样就完成了mysql的基本安装了,接下来cmake指定的目录下,就会出现mysql服务器相关的文件目录。

    // 接下来初始化mysql服务器的数据,以及启动服务器,登录服务

    cd /usr/local/mysqlA

    cp support-files/my-default.cnf  my.cnf

    vi  my.cnf   // 修改my.cnf的 基本参数,如下图;
  4. mycat1.6研究环境搭建(全局序列号、读写分离、故障转移)_第2张图片

        设置 basedir,datadir,port,server_id socket

       其中server_id主要用作主从同步时,MySQL的唯一标识,socket:mysql服务的socket文件。继续敲命令:

      //初始化mysql数据库的数据,比如mysql,test等数据库。

 

      cd scripts

     ./mysql_install_db -basedir=/usr/local/mysqlB/ -datadir=/usr/local/mysqlB/data --user=mysql

     cd /usr/local

     chown -R mysql.mysql mysqlA

     cd /usr/local/mysqlA

     cp support-files/mysql.server /etc/init.d/mysqlA   // 做出服务

     vi /etc/init.d/mysqlA  // 显示指定basedir  datadir的值,如下图:

  • mycat1.6研究环境搭建(全局序列号、读写分离、故障转移)_第3张图片

    //  service mysqlA start | stop | restart
    //启动服务,删除/etc/my.cnf文件
    rm -rf /etc/my.cnf
    service mysqlA start  //如果启动失败,根据提示与错误日志定位并解决问
    
   //用root用户 登录,并修改密码。
   vi /etc/profile
    
   //增加相关环境变量,方便使用mysql命令

   PATH=$PATH:/usr/local/mysql/bin

   export PATH

   //保存并退出

   source /etc/profile

   mysql -u root -p -S /usr/local/mysqlA/mysql.sock

   //直接回车进入到mysql操作界面

   mysql:use mysql

   mysql:update user set password=password('密码') where user='root';

   mysql: //创建用户dev_user,可以支持远程,本地访问

   mysql: grant all privileges on *.* to 'dev_user'@'%' identified by '密码';

   //有的版本,使用%,可能会导致本机无法登录,故再创建一个用户     

   mysql: grant all privileges on *.* to 'dev_user'@'localhost' identified by '密码';

 

   mysql:flush privileges;

   //退出重新登录。

   // 如需要将mysql做成系统启动项:

   chkconfig --level 2345 mysqlA on

上面给出了源码编译安装mysql5.6的相关步骤与命令,如在安装过程中出现问题,请根据提示信息和错误日志,百度解决之。

2、Mysql 主从同步配置

在同一台虚拟机上安装两个mysql实例,组成主从复制结构、直接从mysqlA复制一个到mysqlB目录,然后做一些处理即可,

cd /usr/local

cp -R mysqlA mysqlB

//修改my.cnf 中的路径与端口

mycat1.6研究环境搭建(全局序列号、读写分离、故障转移)_第4张图片

//然后删除mysqlB/data中的所有数据,

 

cd mysqlB/data

rm -rf *

//然后执行初始化遇见  ./mysql_install 见上文

cd /usr/local

chown -R mysql.mysql mysqlB

//接下来启动服务器,修改密码,创建账户等等与mysql安装一样。接下来配置主从配置

// 修改主mysql的my.cnf,加上如下配置:

mycat1.6研究环境搭建(全局序列号、读写分离、故障转移)_第5张图片

补充:binlog_format=mixed

 

//然后重启并进入服务器:

//创建主从同步账户

grant REPLICATION SLAVE on *.* to 'repl_user'@'192.168.0.*' identified by '密码';

grant REPLICATION SLAVE ON *.* to 'repl_user'@'localhost' identified by ''密码;

flush privileges;

show master status;

留意 File  与 Position 两个字段的值。

// 最简单的主从同步,不需要修改slave的my.cnf内容

 

// 直接登陆到从mysql,执行如下语句:

mysql: change master to master_host=' 192.168.0.222', master_port=3306 ,master_user='repl_user', master_password='123456', master_log_file='mysql-bin.000002', master_log_pos=120;

mysql: start slave;

mysql:show slave status\G

 

主从配置配置完毕,测试是否正确同步,接下来master上创建我们做读写分离的数据,看slave上是否正确同步:

create database acc_user_db1 default character set utf8;

create database acc_user_db2 default character set utf8;

create database es_db1 default character set utf8;

create database es_db2 default character set utf8;

然后,通用的方式安装mysqlC,mysqlD,mysqlE等数据库实例。

 

3、mycat 配置

3.1 全局序列化配置

请参考权威指南(全局序列化)章节相关内容,或参考博客:http://blog.csdn.net/prestigeding/article/details/52702057

3.1.1 scheam.xml配置







    

    

        

        

        

        

        

        

        

        

        

        

        

        

        

        

        

            

            

            

            

            

            

            

            

            

            

            

            

            

            

            

            

            

            

            

        

        

        

        

            

            

            

            

            

            

            

            

        

        

    

    

    

    

    

    

              

        select user()

        

            

            

        

        

    

    

        select user()

        

        

            

            

        

    

关于表结构脚步,由于某些原因不方便公开,这里建议就是,自己根据经验,创建一系列表,这里主要的核心是,全局表、ER表。

3.1.2 rule.xml配置









    

    

        

            id

            mod-long

        

    

    

    

        

        2

    

3.1.3 server.xml配置









    

    1

    0  

    0  



        1

       

         

    

    

        

        0

        

        

        

        

        

        

        

        

        0



            

        1



        

        1m



        

        1k



        0



        

        384m





        

        true



        

        



        

        



    



    

    

    

    

    

    

    

    



    

        123456

        es_db



        

        

    



    

        user

        es_db

        true

    



本文展示mycat读写分离,写节点故障转移、全局序列号等配置过程,初步搭建了一个mycat的运行环境。为接下来 路由解析、读写分离、故障转移,存储过程执行等等打下坚实基础。

 

 

你可能感兴趣的:(Mycat,mycat1.6应用篇)