千家信息网

怎么安装部署MyCat

发表于:2024-10-21 作者:千家信息网编辑
千家信息网最后更新 2024年10月21日,怎么安装部署MyCat?相信大部分人都还没学会怎么安装部署,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧1、准备mycat部署环境系统IP主机名服务Centos 7.5192.168.
千家信息网最后更新 2024年10月21日怎么安装部署MyCat

怎么安装部署MyCat?相信大部分人都还没学会怎么安装部署,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧

1、准备mycat部署环境

系统IP主机名服务
Centos 7.5192.168.20.2mysql01MySQL 5.7.24
Centos 7.5192.168.20.3mysql02MySQL 5.7.24
Centos 7.5192.168.20.4mycatMycat

mycat的安装部署需要jdk1.7及以上版本,mysql建议是5.5及以上版本。

自行部署两台MySQL的主从,可以参考博文:MySQL高可用方案--双主(注:只需要参考博文做出主从效果即可,并不需要双主,也不需要keepalived来做高可用)。

2、安装jdk

[root@mycat ~]# java -version         #查看jdk版本是否合适openjdk version "1.8.0_161"OpenJDK Runtime Environment (build 1.8.0_161-b14)OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)#如果上述指令返回错误,可以执行下面的命令安装jdk环境[root@mycat ~]# yum -y install java   

3、部署mycat

下载的mycat包,直接解压即可使用。

#下载并解压[root@mycat src]# wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz[root@mycat src]# tar zxf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/#查看解压后的目录结构[root@mycat src]# tree -L 1  /usr/local/mycat//usr/local/mycat/├── bin├── catlet├── conf├── lib├── logs└── version.txt

其中:

  • bin:启动目录;
  • lib:mycat自身的jar包或依赖的jar包的存放目录;
  • logs:mycat日志的存放目录,日志存放在logs/log中,每天一个文件;
  • conf:配置目录,用于存放配置文件
    • --server.xml:是Mycat服务器参数调整和用户授权的配置文件。
    • --schema.xml:是逻辑库定义和表以及分片定义的配置文件。
    • --rule.xml: 是分片规则的配置文件,分片规则的具体一些参数信息单独存放为文件,也在这个目录下,配置文件修改需要重启MyCAT。
    • --log4j.xml: 日志存放在logs/log中,每天一个文件,日志的配置是在conf/log4j.xml中,根据自己的需要可以调整输出级别为debug debug级别下,会输出更多的信息,方便排查问题。
    • --autopartition-long.txt,partition-hash-int.txt,sequence_conf.properties, sequence_db_conf.properties 分片相关的id分片规则配置文件

下面的图片描述了mycat最重要的3大配置文件:

4、修改mycat配置文件,以便针对后端数据库实现读写分离

1)修改server.xml文件
#指定client连接mycat的用户名及密码,此处的账号密码与MySQL数据库无关[root@mycat mycat]# vim conf/server.xml    #定位到80行左右,修改如下          #mycat为用户名                pwd@123   #此处为密码                teset_mycat    #此处为逻辑库名                                        
2)修改schema.xml文件
                                                                    select user()                                                                                                                                                                                        

注:上面提到的dataHost字段balance负载均衡类型,目前的取值有以下4 种:

  1. balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上(默认值)。
  2. balance="1",全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且 M1 与 M2 互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载均衡。
  3. balance="2",所有读操作都随机的在 writeHost、readhost 上分发。
  4. balance="3",所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压力,注意 balance=3 只在 1.4 及其以后版本有,1.3 没有。

writeTyep字段有以下3中取值:

1、writeType="0", 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个 writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties 。
2、writeType="1",所有写操作都随机的发送到配置的 writeHost,1.5 以后废弃不推荐。switchType 属性

  • -1 表示不自动切换。
  • 1 默认值,自动切换。
  • 2 基于 MySQL 主从同步的状态决定是否切换。
3)测试mycat主机是否可以登录到后端两个数据库
#复制一个mysql命令[root@mycat mycat]# scp root@192.168.20.2:/usr/local/mysql/bin/mysql /usr/local/bin/#对后端两台数据库进行登录测试[root@mycat mycat]# mysql -uroot -p123.com -h 192.168.20.2[root@mycat mycat]# mysql -uroot -p123.com -h 192.168.20.3#确保执行上述指令登录数据库时,可以登录成功。#如果没有登录成功,则要考虑数据库的root用户是否有远程登录的权限,或者防火墙的问题。
4)由于上述配置文件中,要删除一些配置,如果不删除,则会造成启动失败,所以这里附上修改后的完整配置文件

server.xml文件内容如下:

                0          0                  2                0                0                1                1m                1k                0                384m                true                                pwd@123                teset_mycat        

conf/schema.xml文件内容如下:

                                                select user()                                                                                                        

5、启动mycat

  • ./mycat start 启动
  • ./mycat stop 停止
  • ./mycat console 前台运行
  • ./mycat install 添加到系统自动启动(暂未实现)
  • ./mycat remove 取消随系统自动启动(暂未实现)
  • ./mycat restart 重启服务
  • ./mycat pause 暂停
  • ./mycat status 查看启动状态
#创建命令软连接[root@mycat mycat]# ln -sf /usr/local/mycat/bin/mycat /usr/local/bin/#启动mycat[root@mycat mycat]# mycat start   #更建议使用mycat console前台启动,如果有错误,就会直接输出到屏幕,方便排错#待调试正常后,再使用mycat start后台启动即可。Starting Mycat-server...[root@mycat conf]# ss -lnp | grep 8066   #如果端口没有在监听,则表示启动失败,自行查看日志排查吧。tcp    LISTEN     0      100      :::8066                 :::*                   users:(("java",pid=62070,fd=78))#使用server.xml文件中定义的用户名及密码进行登录查看[root@mycat conf]# mysql -umycat -ppwd@123 -h 192.168.20.4 -P 8066mysql> show databases;   #下面的teset_mycat库对应的就是后端的test库+-------------+| DATABASE    |+-------------+| teset_mycat |+-------------+1 row in set (0.00 sec)mysql> use teset_mycat#库中所有的表数据和后端数据库是对应的mysql> show tables;+----------------+| Tables_in_test |+----------------+| t1             |+----------------+1 row in set (0.00 sec)mysql> select * from t1;+------+------+| id   | name |+------+------+|    1 | a    ||    2 | b    ||    3 | c    ||    4 | d    |+------+------+

以上就是安装部署MyCat的详细步骤了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注行业资讯!

0