在银河麒麟操作系统上安装shardingsphere-proxy需适配国产化环境:确认cpu架构与系统版本,关闭kysec安全策略或添加白名单;升级jdk至11.0.22+;使用mysql-connector-java-5.1.49.jar并放至ext-lib目录;配置server.yaml启用standalone模式、显式设置用户密码、开启sql-show;config-sharding.yaml中url须含usessl=false&servertimezone=asia/shanghai,分片键类型需匹配;非root用户启动并验证连接成功。

在银河麒麟操作系统上安装和配置ShardingSphere-Proxy,需适配国产化环境的JDK、MySQL驱动及系统权限机制,避免因glibc版本、ARM/x86架构差异或SELinux策略导致启动失败。
确认系统与基础依赖
执行 uname -m 查看CPU架构(银河麒麟V10 SP1常见为aarch64或x86_64),该结果决定后续JDK与MySQL驱动的选型。
运行 cat /etc/kylin-version 确认版本号,V10 SP1及以上默认启用Kysec安全策略,需临时关闭或白名单授权Java进程:执行 sudo kysec disable 或添加 /opt/shardingsphere-proxy/bin/start.sh 到Kysec信任列表。
银河麒麟预装OpenJDK 11.0.12,但ShardingSphere-Proxy 5.1.1要求JDK 11.0.15+,必须手动升级:从Adoptium官网下载 【Eclipse Temurin JDK 11.0.22+10 (aarch64 or x64)】,解压后设置 JAVA_HOME=/opt/temurin-jdk 并更新 /etc/profile 中的PATH。
下载并解压ShardingSphere-Proxy
从Apache官网镜像站下载 apache-shardingsphere-5.1.1-shardingsphere-proxy-bin.tar.gz,校验SHA512值防止镜像篡改。
创建专用目录:sudo mkdir -p /opt/shardingsphere-proxy && sudo chown -R $USER:$USER /opt/shardingsphere-proxy。
解压到目标路径:tar -zxvf apache-shardingsphere-5.1.1-shardingsphere-proxy-bin.tar.gz -C /opt/shardingsphere-proxy --strip-components=1。
配置MySQL驱动(关键适配步骤)
银河麒麟默认不兼容MySQL Connector/J 8.0.28的native SSL库,必须降级使用 【mysql-connector-java-5.1.49.jar】(经Kylin V10实测稳定)。
将jar包复制到 /opt/shardingsphere-proxy/ext-lib/ 目录,注意该目录是唯一被ClassLoader扫描的扩展路径,放错位置会导致“ClassNotFoundException”。
执行 chmod 644 /opt/shardingsphere-proxy/ext-lib/mysql-connector-java-5.1.49.jar,避免Kysec因文件权限异常拦截加载。
修改核心配置文件
编辑 /opt/shardingsphere-proxy/conf/server.yaml,重点调整三项:
① 将 mode.type 设为 Standalone(银河麒麟暂不支持ZooKeeper集群模式下的Curator 5.x依赖冲突);
② 在 rules 下添加权限配置,必须显式声明用户密码(银河麒麟下空密码会被PAM拒绝):users: - root@%:your_strong_password;
③ 设置 props.sql-show: true,便于调试时观察SQL路由日志——这一步漏掉将无法定位分片失败原因。
配置逻辑数据源(config-xxx.yaml)
在 /opt/shardingsphere-proxy/conf/ 下新建 config-sharding.yaml,按实际数据库填写连接参数:
dataSources部分的 url 必须包含 useSSL=false&serverTimezone=Asia/Shanghai,否则银河麒麟JDK会因TLS握手失败卡住初始化;
shardingRule中若使用 algorithm-expression: t_order_${order_id % 2},确保分片键 order_id 在真实表中为BIGINT类型,否则aarch64平台可能出现取模计算溢出;
保存后执行 chmod 600 /opt/shardingsphere-proxy/conf/config-sharding.yaml,Kysec策略要求敏感配置文件不可被组/其他用户读取。
启动与验证
赋予启动脚本执行权限:chmod +x /opt/shardingsphere-proxy/bin/start.sh。
切换至非root用户启动:su - shardingsphere -c "/opt/shardingsphere-proxy/bin/start.sh",禁止root直接运行,否则Kysec会拦截socket绑定。
检查日志:tail -f /opt/shardingsphere-proxy/logs/stdout.log,出现 ShardingSphere-Proxy started successfully 且无 Caused by: java.lang.UnsatisfiedLinkError 即表示成功。
从另一台银河麒麟机器用MySQL客户端连接:mysql -h 127.0.0.1 -P3307 -uroot -pyour_strong_password,执行 show databases; 返回 sharding_db 即完成配置。











