news 2026/5/28 3:34:53

保姆级教程:在CentOS 7上从下载到启动Mycat 1.6.7.4(附用户权限与Java环境避坑指南)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
保姆级教程:在CentOS 7上从下载到启动Mycat 1.6.7.4(附用户权限与Java环境避坑指南)

CentOS 7实战:Mycat 1.6.7.4全流程部署与避坑指南

在数据库中间件领域,Mycat凭借其出色的分库分表能力和对MySQL协议的完美兼容,已经成为许多企业解决数据量激增问题的首选方案。本文将带您从零开始,在CentOS 7系统上完成Mycat 1.6.7.4的完整部署过程,特别针对内网环境和新手可能遇到的权限、Java环境等典型问题进行深度解析。

1. 环境准备与基础配置

1.1 系统环境检查

在开始安装前,我们需要确认CentOS 7系统的基础环境是否符合要求:

# 查看系统版本 cat /etc/redhat-release # 检查内存情况 free -h # 检查磁盘空间 df -h

提示:Mycat运行至少需要1GB可用内存和2GB磁盘空间,生产环境建议配置更高

1.2 创建专用用户

为Mycat创建独立用户是安全部署的第一步,避免使用root权限运行服务:

# 创建mycat用户组和用户 groupadd mycat useradd -r -g mycat -s /bin/false mycat # 验证用户创建 id mycat

1.3 Java环境安装与配置

Mycat基于Java开发,必须确保正确安装JDK:

# 检查现有Java版本 java -version # 若未安装,执行以下命令安装OpenJDK 8 yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel # 验证安装 java -version javac -version

配置JAVA_HOME环境变量:

# 查找Java安装路径 update-alternatives --config java # 编辑/etc/profile文件 vim /etc/profile

在文件末尾添加(路径根据实际查找结果调整):

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64 export PATH=$PATH:$JAVA_HOME/bin

使配置立即生效:

source /etc/profile

2. Mycat安装与目录配置

2.1 获取安装包

在内网环境中,我们通常需要先将安装包下载到本地再上传到服务器:

# 在本地下载Mycat 1.6.7.4 # 官方地址:http://dl.mycat.org.cn/1.6.7.4/Mycat-server-1.6.7.4-release/ # 使用scp上传到服务器(示例) scp Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz root@服务器IP:/usr/local/

2.2 解压与目录权限设置

解压安装包并设置正确的目录权限:

# 切换到安装目录 cd /usr/local # 解压安装包 tar -zxvf Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz # 简化目录名 mv Mycat-server-1.6.7.4-release-20200105164103-linux mycat # 设置目录权限 chown -R mycat:mycat mycat chmod -R 755 mycat

2.3 配置环境变量

为方便使用mycat命令,需要配置系统环境变量:

vim /etc/profile

在文件末尾添加:

export MYCAT_HOME=/usr/local/mycat export PATH=$PATH:$MYCAT_HOME/bin

使配置生效:

source /etc/profile

验证配置:

echo $MYCAT_HOME

3. 核心配置文件详解

3.1 schema.xml配置解析

schema.xml是Mycat的核心配置文件之一,主要定义逻辑库、表和数据节点的映射关系。以下是一个典型的多节点配置示例:

<mycat:schema xmlns:mycat="http://io.mycat/"> <!-- 定义逻辑库 --> <schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100"> <!-- 定义逻辑表 --> <table name="t_order" dataNode="dn1,dn2" rule="mod-long" primaryKey="id"/> </schema> <!-- 定义数据节点 --> <dataNode name="dn1" dataHost="localhost1" database="db1"/> <dataNode name="dn2" dataHost="localhost1" database="db2"/> <!-- 定义数据主机 --> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1"> <heartbeat>select user()</heartbeat> <writeHost host="hostM1" url="192.168.1.100:3306" user="root" password="yourpassword"/> </dataHost> </mycat:schema>

关键参数说明:

参数名称说明推荐值
checkSQLschema是否检查SQL中的schematrue
sqlMaxLimit默认返回行数限制100-1000
balance负载均衡策略0-3
writeType写操作分发方式0-1

3.2 server.xml安全配置

server.xml配置Mycat服务本身参数和用户权限:

<user name="mycat_user" defaultAccount="true"> <property name="password">mypassword</property> <property name="schemas">TESTDB</property> <!-- 权限控制示例 --> <privileges check="true"> <schema name="TESTDB" dml="1110"> <table name="t_order" dml="1100"/> </schema> </privileges> </user>

注意:生产环境必须修改默认用户名密码,并严格控制DML权限(1=可执行,0=禁止)

3.3 rule.xml分片规则

rule.xml定义分片算法,以下是常用的mod-long分片示例:

<tableRule name="mod-long"> <rule> <columns>id</columns> <algorithm>mod-long</algorithm> </rule> </tableRule> <function name="mod-long" class="io.mycat.route.function.PartitionByMod"> <property name="count">2</property> </function>

4. 服务启动与故障排查

4.1 启动与停止服务

使用mycat用户启动服务:

# 切换用户 su - mycat -s /bin/bash # 启动服务 $MYCAT_HOME/bin/mycat start # 查看状态 $MYCAT_HOME/bin/mycat status # 停止服务 $MYCAT_HOME/bin/mycat stop

4.2 日志查看与分析

Mycat日志是排查问题的关键:

# 查看启动日志 tail -f $MYCAT_HOME/logs/wrapper.log # 查看业务日志 tail -f $MYCAT_HOME/logs/mycat.log

常见启动问题及解决方案:

  1. Java环境问题

    ERROR: transport error 202: bind failed: Address already in use

    检查Java安装和环境变量配置,确保JAVA_HOME正确

  2. 权限不足

    Permission denied while creating directory

    确保mycat用户对安装目录有读写权限

  3. 端口冲突

    java.net.BindException: Address already in use

    检查8066(服务端口)和9066(管理端口)是否被占用

4.3 连接测试

使用MySQL客户端连接Mycat:

mysql -umycat_user -pmypassword -h127.0.0.1 -P8066

连接后执行基本SQL测试:

-- 查看逻辑库 SHOW DATABASES; -- 使用TESTDB库 USE TESTDB; -- 创建测试表 CREATE TABLE t_order (id INT PRIMARY KEY, name VARCHAR(20)); -- 插入测试数据 INSERT INTO t_order VALUES (1, 'order1'), (2, 'order2'); -- 查询数据 SELECT * FROM t_order;

5. 性能优化与日常维护

5.1 JVM参数调优

编辑$MYCAT_HOME/conf/wrapper.conf调整JVM参数:

wrapper.java.additional.3=-Xms1G wrapper.java.additional.4=-Xmx2G wrapper.java.additional.5=-XX:MaxPermSize=256M

提示:Xms和Xmx建议设置为相同值,避免运行时内存波动

5.2 连接池配置优化

在server.xml中调整连接池参数:

<system> <property name="defaultSqlParser">druidparser</property> <property name="processorBufferPool">2048</property> <property name="processorBufferChunk">1024</property> </system>

推荐配置值:

参数小型系统中型系统大型系统
processorBufferPool102420484096
processorBufferChunk51210242048

5.3 监控与管理

Mycat自带管理端口(默认9066),可获取运行时信息:

mysql -umycat_user -pmypassword -h127.0.0.1 -P9066

常用管理命令:

-- 查看连接 SHOW @@connection; -- 查看线程池 SHOW @@threadpool; -- 查看缓存 SHOW @@cache; -- ���看数据节点 SHOW @@datanode;

5.4 定期维护建议

  1. 每日检查日志文件大小和错误日志
  2. 每周备份配置文件
  3. 每月统计慢查询并优化
  4. 根据业务增长情况提前规划分片策略调整

在实际部署过程中,我们发现Mycat 1.6.7.4版本在CentOS 7上运行稳定,但需要注意定期清理日志文件避免磁盘空间耗尽。对于分片键的选择,建议使用业务查询频繁的字段作为分片键,可以显著提升查询性能。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 3:34:10

三分钟解锁B站4K视频下载:告别在线播放限制的智能解决方案

三分钟解锁B站4K视频下载&#xff1a;告别在线播放限制的智能解决方案 【免费下载链接】bilibili-downloader B站视频下载&#xff0c;支持下载大会员清晰度4K&#xff0c;持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 你是否曾经在深…

作者头像 李华
网站建设 2026/5/28 3:30:00

Cortex-M处理器调试接口架构与内存访问详解

1. Cortex-M处理器调试接口概述在嵌入式系统开发中&#xff0c;调试接口是开发人员与处理器交互的重要通道。Cortex-M系列处理器作为ARM架构中广泛应用的微控制器内核&#xff0c;提供了标准化的调试访问机制。通过调试接口&#xff0c;开发者可以访问处理器的内存系统、寄存器…

作者头像 李华
网站建设 2026/5/28 3:26:55

零样本异常检测新思路:不用一张正常图片训练,MuSc方法如何利用测试图自身“投票”找出缺陷?

零样本异常检测革命&#xff1a;MuSc方法如何通过图像自投票实现工业缺陷精准定位在工业质检领域&#xff0c;传统异常检测方法长期面临一个根本性矛盾&#xff1a;生产线上的缺陷样本稀少且形态多变&#xff0c;而深度学习模型却需要海量标注数据才能达到理想效果。这种矛盾在…

作者头像 李华