Linux下怎么部署Apache ShardingSphere

风磊同学_5983

风磊同学_5983

2026-06-22

348人浏览

原创

shardingsphere-proxy需手动将mysql驱动(如mysql-connector-java-8.0.22.jar)放入ext-lib目录,且必须匹配mysql版本;配置文件须严格遵循yaml格式(空格缩进、全大写type值)、命名规范(config-xxx.yaml),并重启生效。

linux下怎么部署apache shardingsphere

直接解压启动就能用,但 MySQL 驱动必须手动放对位置

ShardingSphere-Proxy 在 Linux 下不是装完就跑的“一键式”工具,bin/start.sh 能执行成功,不代表能连上后端数据库——最常卡在 java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver。原因很实在:ShardingSphere-Proxy 默认不带任何数据库驱动,你得自己把 mysql-connector-java-8.0.22.jar(或适配你 MySQL 版本的驱动)扔进 ext-lib/ 目录。

  • 别往 lib/ 里塞,那是给 ShardingSphere 自身扩展用的;ext-lib/ 才是 JDBC 驱动的法定落脚点
  • 驱动版本要匹配:MySQL 8.x 用 mysql-connector-java-8.x,5.7 用 5.1.47 或 6.0.6,混用大概率报 Communications link failure
  • 确认文件权限:确保 ext-lib/mysql-connector-java-*.jar 对运行 start.sh 的用户可读

server.yaml 里 auth 配置写错,连都连不上

默认配置里 rules 下的权限规则如果格式不对,Proxy 启动时不会报错,但客户端一连就提示 Access denied for user 'root'@'xxx'——它压根没加载你写的用户规则。

  • users 必须是列表结构,每个元素是 username@host:password 形式,比如 - root@%:root,不能写成 root: root 或漏掉 @%
  • provider.type 值必须全大写,如 ALL_PRIVILEGES_PERMITTED,写成 all_privileges_permitted 或 AllPrivilegesPermitted 都无效
  • 缩进必须用空格,不能用 Tab;YAML 对空格极其敏感,users 前多一个空格就导致整个 rules 段被忽略

conf/config-xxx.yaml 分片配置改了却没生效

很多人改完 conf/config-sharding.yaml 就重启,发现 SQL 还是直连单库——根本没走分片逻辑。问题往往出在配置加载链路上。

Zynq Linux Hardware Debug
Zynq Linux Hardware Debug

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。

下载
  • server.yaml 里的 rules 只管权限和全局开关,真正决定用哪个分片规则的是 mode 和 props 下的 proxy.frontend.database.protocol 等参数,但实际生效靠的是 config-xxx.yaml 文件名是否被 start.sh 自动识别
  • ShardingSphere-Proxy 5.1+ 默认只加载以 config- 开头、且后缀为 .yaml 的文件(如 config-sharding.yaml),sharding-config.yaml 或 config-sharding.yml 都会被无视
  • 改完配置后必须重启 Proxy,热加载不支持分片规则变更;只改 server.yaml 中的 sql-show: true 可以动态生效,但分片策略不行

端口冲突或防火墙拦住连接

启动日志显示 Starting proxy server... 就停住,或者客户端报 Can't connect to MySQL server on '127.0.0.1' (111),八成是端口没通。

  • 默认端口是 3307,不是 3306;检查是否有其他进程占用了该端口:lsof -i :3307 或 netstat -tuln | grep 3307
  • 如果改过 server.yaml 里的 props.proxy.port,务必确认 start.sh 启动时没被命令行参数覆盖,例如 bin/start.sh 3308 会强制用 3308,无视配置文件
  • Linux 防火墙(firewalld 或 ufw)可能拦截外部连接,测试时先临时关掉:sudo systemctl stop firewalld(CentOS)或 sudo ufw disable(Ubuntu)

配置文件路径、驱动位置、YAML 格式、端口监听——这四个点任一出错都会让 Proxy 表面启动成功实则不可用。尤其注意 ext-lib 和 config- 命名规范,这是新手掉坑最多的地方。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4010

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3433

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2613

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6350

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5982

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3493

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2985

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3219

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Conan 参考手册
Conan 参考手册

共0课时 | 0人学习

Jupyter Notebook官方文档
Jupyter Notebook官方文档

共0课时 | 0人学习

nginx浅谈
nginx浅谈

共15课时 | 1.3万人学习