ZBLOG

mysql -uuniemm -D emm_manager -pEmm@2020 -h 127.0.0.1 -P3307 -e 'REGISTER STORAGE UNIT ds_0(HOST="127.0.0.1",PORT=9906,DB="db_0",USER="uniemm",PASSWORD="Emm@2020");' linux使用mysql命令行进入shardingsphere-proxy后,可以正常执行-e里面的dist sql,但是直接在命令行运行会报错You hav...

这个错误是因为直接在命令行中使用 mysql -e 执行时,MySQL客户端将整个命令当作标准SQL语句处理,而 REGISTER STORAGE UNIT 是ShardingSphere特有的DistSQL语法。

解决方案:

方案1:使用ShardingSphere-Proxysql命令行

mysql -uuniemm -D emm_manager -pEmm@2020 -h 127.0.0.1 -P3307 --prompt="ShardingSphere> "

然后在进入的交互式界面中执行:

REGISTER STORAGE UNIT ds_0(HOST="127.0.0.1",PORT=9906,DB="db_0",USER="uniemm",PASSWORD="Emm@2020");

方案2:通过文件方式执行

创建SQL文件(如register.sql):

REGISTER STORAGE UNIT ds_0(HOST="127.0.0.1",PORT=9906,DB="db_0",USER="uniemm",PASSWORD="Emm@2020");

然后执行:

mysql -uuniemm -D emm_manager -pEmm@2020 -h 127.0.0.1 -P3307 < register.sql

方案3:使用here document方式

mysql -uuniemm -D emm_manager -pEmm@2020 -h 127.0.0.1 -P3307 << EOF
REGISTER STORAGE UNIT ds_0(HOST="127.0.0.1",PORT=9906,DB="db_0",USER="uniemm",PASSWORD="Emm@2020");
EOF

原因说明:

  • ShardingSphere Proxy作为一个数据库中间件,支持DistSQL扩展语法
  • 直接使用 mysql -e 时,MySQL客户端无法识别非标准SQL语法
  • 需要通过交互式会话或文件输入的方式让Proxy正确解析DistSQL

推荐使用方案2的文件方式,便于脚本化和重复执行。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=24350

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?